タブブラウザ Sleipnir オンラインデータベース
http://www.sleipnir-wiki.jp/index.php?SearchEngineList.xml

  [ リロード ]   [ トップ | 一覧 | 単語検索 | 最終更新 | バックアップ | ヘルプ ]

SearchEngineList.xml †

現在の正式版(build.2004108 以降)には、検索エンジンリストを編集する UI が実装されています
Sleipnirオプション→検索エンジンリスト)。
本ページは SearchEngineList.xml を直接編集する場合の参考情報です。

上手く作成できない場合は検索エンジンのサンプルも参考にして下さい。

※検索バーのポップアップメニューについては、検索バーメニューの編集を参照してください。
SPACE ALC の「英辞郎」など規約で外部ツールバー類からの検索が禁止されている場合があります。
禁止されていても無視して登録が出来るところもあるかも知れませんが、自己責任でお願いします。*1



ファイルの場所 †

以下の場所にあります。
Sleipnir のインストールフォルダ*2\resources\languages\default\japanese\SearchEngineList.xml

※編集を始める前には必ずバックアップ(別の場所にコピーを作っておく)ことをお勧めします。
Sleipnir は終了させてから編集してください。
(終了時に更新されて変更が戻ってしまうかもしれません)

編集済みの SearchEngineList.xml は
インストールフォルダ\setting\ユーザー名\setting\Override\
におくことでアップデートしても上書きされません(Overrideとplugins.ini)。
ただしOverrideフォルダに置いたリストには、defaultリソース*3の更新(アップデート)が適用されません。ご注意ください。

リファレンス †

ファイルの編集 †

簡略化するとこのようになります。

<Engine>
	<ActionName>アクション名</ActionName>
	<Name>表示名</Name>
	<Request>リクエスト文</Request>
	<Icon>アイコンファイル名</Icon>
	<Encode>エンコード種別</Encode>
	<Shortcut>ショートカット文字列</Shortcut>
	<Method>メソッド</Method>
	<Security>セキュリティ</Security>
	<ComboBox>コンボボックス</ComboBox> | <ListBox>リストボックス</ListBox>
</Engine>

ComboBoxListBoxはどちらか一方しか追加できません。
各行は、順序が前後しても問題ありません。

<ActionName> &dagger;

アクション名です

<ActionName>アクション名</ActionName>

使用できる文字は半角英数字です。 検索エンジンを判別する基準になるので重複の無い名前を指定して下さい
(重複していた場合、どんな不具合が起こるかわかりません)。

アクション名は SearchMenu.xml でも使用します。

<Name> &dagger;

表示名です

<Name>表示名</Name>

検索バーに何も文字が入力されていないときに表示される文や[オプション>ツールバープラグイン>検索バーボタン]などで使用されます。
なるべく分かり易い名前にした方がいいでしょう。

検索バーメニューで表示される文字は別に指定できます。

<Request> &dagger;

リクエスト文です

<Request>リクエスト文</Request>

実際にリクエストするURLなどを指定します。

  • URLに{文字列}を含めるとその位置にエンコードで指定された方法でキーワードが挿入されます。
    {文字列}の種類は以下の通りです。
    {all}
    全ての検索ワードが挿入されます。通常はこれを使用します。
    {1}{9}
    検索ワードが複数ワードである場合に、左から順に番号の位置に挿入されます。
    乗り換え案内などで使うと良いでしょう。
    {ex}
    リストボックスコンボボックスで使用します
  • {all}{1}{9}も無い場合、検索ワードはURLの末尾に付け加えられるようです。
  • @post:で始まる文字列を追記すると指定のURLにPOSTメソッドでのリクエストを送ることが出来るようです。
    • "@post:name=value&name=value&name=value…"のような形になるはずです。
    • @post:は小文字で指定すること。
  • meta:で始めるとメタ検索(複数の検索エンジンで一括検索)が出来ます。
    • 他のEngine要素で定義したアクション名を使用します。
    • "meta:アクション名|アクション名|アクション名|…"という形になります。

<Icon> &dagger;

アイコンファイル名です

<Icon>アイコンファイル名</Icon>

アイコンには"インストールフォルダ\resources\skins\default\toolbar\SearchBar"にあるアイコンを指定します。

  • ここで指定した名前のアイコンが検索ボックス内で表示されるアイコンです。
  • 検索バーボタンでは指定した名前の末尾に16を付け加えた名前のアイコン使用されます。
    (例えば、hogehoge.icoを指定したらhogehoge16.icoが検索バーボタンとして使われる)

この仕様は後々、変更される可能性があるそうなので注意して下さい。

<Encode> &dagger;

エンコード種別です

<Encode>エンコード種別</Encode>

キーワードのエンコード方法を指定します。

  • 指定できる値は以下の通りです。
    • URL_ENCODE
    • EUC
    • UTF8
    • NONE
  • 大抵は検索フォームがあるページで右クリックメニューから表示できるエンコードを見ればわかります。
  • 上手くいかなかった場合は文字化けが起こると思うので別のを指定してみてください。

<Shortcut> &dagger;

ショートカット文字列です

<Shortcut>ショートカット文字列</Shortcut>

任意の文字列を半角英数字で指定します。(最大10文字までです)
重複の無い文字列を指定して下さい。

どのように使用するかはここでは割愛します。

<Method> &dagger;

メソッドです

<Method>メソッド</Method>

リクエストする際のメソッドを記述します。

  • GETもしくはPOSTが指定できます。
  • リクエスト文で"@post:"を使用する場合はここでPOSTが指定されている必要があります。

<Security> &dagger;

セキュリティです

<Security>セキュリティ</Security>

そのうち、(多分)セキュリティ的なことが指定できるようになる(かもしれない)と思われます。
今のところは空欄でいいでしょう。

<ListBox> &dagger;

リストボックスです

<ListBox>
	<Item value="値">項目名</Item>
		:
</ListBox>

この要素がある検索エンジンでは検索バーにリストボックスが作成されます。

  • Item要素は複数指定できます。(1つ以上)
  • 項目名にはプルダウンのリストで表示される名前です。
    分かり安い名前を付けてください。
  • にはその項目を選択している場合にリクエストで指定された場所に挿入される文字列です。
    • エンコードされません
    • {ex}の場所に挿入されます。
    • ここで指定しておけば検索エンジンのモードなどを簡単に切り替えることも可能です。

<ComboBox> &dagger;

コンボボックスです

<ComboBox>
	<Description>説明</Description>
	<Item>値</Item>
		:
</ComboBox>

この要素がある検索エンジンでは検索バーにコンボボックスが作成されます。

  • Item要素は複数指定できます(0個でも可)
  • 説明はコンボボックスに何も入力されて無い場合に表示される文字です。
  • で指定した文字がエンコードされてリクエストで指定された場所に挿入されます。
    • {ex}の場所に挿入されます。
    • リストボックスと違ってItem要素がなくてもそのまま文字を入力して使うことが出来ます。
    • ある程度、検索文字が決まっている検索エンジンで役に立つでしょう。

<Guid> &dagger;

不明です。

<Guid></Guid>

詳細はわかりませんが、各検索エンジンに固有のID番号であるようです(自動アップデート機能が検索エンジンリストを更新する際などに利用されるものと思われます)。最初から記されていた分については変更しない方がよいでしょう。

ユーザーが追加した検索エンジンには不要です。空欄でよいでしょう。丸ごと省略しても構いません。

<CategoryGuid> &dagger;

検索エンジンのカテゴリーを指定します。

<CategoryGuid></CategoryGuid>

カテゴリーを指定した場合、検索エンジンリストのカテゴリーとカテゴリー選択ダイアログにあるカテゴリーに同じGUIDの検索エンジンが表示されます。カテゴリー選択ダイアログは検索エンジンメニューの編集ボタンからたどることができます。

なお、カテゴリー表示を機能させるためにはSearchEngine.xml、SearchMenu.xmlの両方で指定する必要があります。どちらか一方、もしくは、両方とも指定しなかった場合、検索エンジンリストのカテゴリーには全ての検索エンジンが表示され、カテゴリー選択ダイアログにあるカテゴリーはその他のみが表示されたり、同じカテゴリーにある検索エンジンが全て表示されなかったりします。

リクエスト文の作り方 &dagger;

検索結果から作る &dagger;

実際に適当な単語で検索してアドレス欄を参考にすると簡単に作れる場合があります。

例えば、あるサイトでkashiwamochiと検索したとします。すると次のようなアドレスが表示されました。

http://www.hogesearch.jp/index.cgi?orz=3&nullpo=ga&hoge=kashiwamochi&are=kore

大半は全く持って意味不明ですが、よく見ると後の方にhoge=kashiwamochiと書かれています。
実際に検索した語句なのでここを次のように書き換えれば良いと分かります。

http://www.hogesearch.jp/index.cgi?orz=3&nullpo=ga&hoge={all}&are=kore

該当場所を{all}に変えれば言いわけです。

一番簡単なリクエスト文の作り方ですが大半はこれで上手くいきます。

検索フォームから作る &dagger;

この記事はサイト製作の基本的な知識があることを前提に書いています。理解できない場合はHTMLのリファレンスサイトなども参考にして下さい。

検索サイトにあるフォームからリクエスト文を直接作ることが出来るようになれば、 検索結果でURLが変化しないサイト(いわゆるPOSTメソッド)の検索エンジンも使えるようになります。POSTメソッドについては次項で説明しますので、ここでは検索フォームからリクエスト文を作る方法を書きます。かなり長くなると思うので注意して下さい。

ソースを見ながら作ることになるわけですが、 先にHTMLのフォームについてざっと述べておきます

  1. form要素がある
  2. データの送信先をform要素のaction属性で指定する
  3. form要素のmethod属性でGETかPOSTを指定する(省略時はGET)
  4. フォームの部品(コントロール)がある
  5. データ送信のための各コントロールにname属性が指定されている
  6. type属性でsubmitと指定されているinput要素が送信ボタン
  7. 送信ボタンをクリックした際に、form要素内にある有効なコントロールの値(ユーザーが直接入力したデータかvalue属性で指定されている値)がaction属性で指定した場所に送信される。

これだけでは分からないと思いますが、とりあえず7番目に注目して下さい。HTMLソース全てを読む必要は無く、form要素の中だけでいいのです。 また、コントロールになり得る要素は限られているので、たとえform要素だけでかなり長いソースだとしても、大抵は不要な部分を消していくことで慣れていない人でも十分作れる形になるでしょう。

それらを踏まえた上で次の例を見て下さい
(本ウィキの単語検索ページを例にしています。ページのエンコードはEUCです)。

<form action="http://www.sleipnir-wiki.jp/index.php?cmd=search" method="post">
<div><input type="hidden" name="encode_hint" value="ぷ" /></div>
 <div>
  <input type="text"  name="word" value="" size="20" />
  <input type="radio" name="type" value="AND"  checked="checked" />AND検索
  <input type="radio" name="type" value="OR"    />OR検索
  &nbsp;<input type="submit" value="検索" />
 </div>
</form>

上記が検索formのソースです。不要な部分を消し整理してみましょう。

http://www.sleipnir-wiki.jp/index.php?cmd=search
post
<input type="hidden" name="encode_hint" value="ぷ" />
<input type="text"  name="word" value="" />
<input type="radio" name="type" value="AND"  />AND検索
<input type="radio" name="type" value="OR"   />OR検索
<input type="submit" value="検索" />

ここから、情報を組み替えて記述を作っていきます。

  • formの送信メソッドがPOSTなので
    <Request>http://www.sleipnir-wiki.jp/index.php?cmd=search@post:</Request>
    というように、リクエスト文の末尾に「@post:」を加えます。またメソッド記述は
    <Method>POST</Method>
    とします。
  • ページのエンコードがEUCなので、エンコード種別の指定は
    <Encode>EUC</Encode>
    になります。
  • typeがhiddenのinputは不変なデータなので、
    <Request>http://www.sleipnir-wiki.jp/index.php?cmd=search@post:encode_hint=%A4%D7</Request>
    というように、サーバー名などとともに検索リクエストに含めてしまいましょう。
    • %A4%D7」は、EUCで書かれた「」をURLエンコードしたものです。
  • typeがtextになっているinput(テキストボックス)は、検索バーの検索ボックスにその役割を再現させましょう。
    <Request>http://www.sleipnir-wiki.jp/index.php?cmd=search@post:encode_hint=%A4%D7&word={all}</Request>
    • 検索ボックスの入力文字列は、リクエストの「{all}」に代入されます。
    • 複数のフォーム部品を列記するときは、
      「部品1のname=部品1のvalue&部品2のname=部品2のvalue」というように「&」で区切って下さい。
  • 「type="radio"」のインプットは、二者択一になっています。
    これは、検索バーの拡張アイテム「Listbox」で再現しましょう。
    <Request>http://www.sleipnir-wiki.jp/index.php?cmd=search@post:encode_hint=%A4%D7&word={all}&type={ex}</Request>
    <ListBox>
     <Item value="AND">AND検索</Item>
     <Item value="OR">OR検索</Item>
    </ListBox>
    • 拡張アイテムのvalueは、リクエストの「{ex}」に代入されます。
  • submitボタンにはnameがないので、これは無視しましょう。

ここまでを整理してみます。

<Request>http://www.sleipnir-wiki.jp/index.php?cmd=search@post:encode_hint=%A4%D7&word={all}&type={ex}</Request>
<Method>POST</Method>
<Encode>EUC</Encode>
<ListBox>
 <Item value="AND">AND検索</Item>
 <Item value="OR">OR検索</Item>
</ListBox>

あとはアクション名表示名を指定し、全体を<Engine></Engine>で囲めば完成です
(アクション名が他の検索エンジンとバッティングしないよう注意して下さい)。

<Engine>
 <ActionName>SleipnirWikiJpSearch</ActionName>
 <Name>SleipnirWiki単語検索</Name>
 <Request>http://www.sleipnir-wiki.jp/index.php?cmd=search@post:encode_hint=%A4%D7&word={all}&type={ex}</Request>
 <Icon>Default.ico</Icon>
 <Method>POST</Method>
 <Encode>EUC</Encode>
 <Shortcut>pnir</Shortcut>
 <ListBox>
  <Item value="AND">AND検索</Item>
  <Item value="OR">OR検索</Item>
 </ListBox>
</Engine>

お好みで検索ショートカットやアイコンを指定してもよいでしょう。
上の例では検索ショートカットを「pnir」に、アイコンを標準のものに指定しています。


検索フォームから作る場合のヒント

サンプル &dagger;

Wiki内

外部サイト


  • ListboxにあるItemのうちvalueがカラのもの(<Item value="">)は、SearchEngineList.xmlに正しく保存されないようです。 -- 2006-06-20 02:20:02 (火)

*1 良心がある人は絶対にしないで下さい。
*2 インストーラ版でインストールした場合、通常は「C:\Program Files\Fenrir & Co\Sleipnir」になります。->詳細
*3 インストールフォルダ\resources\languages\default\japanese\SearchEngineList.xml

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-12-06 (木) 22:28:45 (3788d)