Firefox 2 の検索プラグイン (検索バー)

| | コメント(0) | トラックバック(0)

(2007/10/14 追記 ここから)
別エントリで、新たに、Firefox 2の検索バーについて書きました。

SEE:
Firefox 2 の検索プラグイン (検索バー) その2 (このblogより)
(2007/10/14 追記 ここまで)

Firefox 2 になって、検索バーに表示されるエンジンの順番を簡単に並べ替えられるようになって便利かも。

設定ファイルの形式も変わったっぽい。(Sherlock → OpenSearch)
これで、今まで対応してなかったPOSTに対応したっぽい。

自分で書いた検索プラグインの定義(Sherlock)を Firefox 2(OpenSearch) へ移行したかったので調べてみました。

SEE:
Mozilla Firebirdの検索バー (このblogより)

公開されている検索エンジンプラグイン

本家だと、この辺かな。

・Mozilla Japan - Firefox 用アドオン - 検索エンジン
http://www.mozilla-japan.org/addons/firefox/search-engines/

・Mycroft Project: Sherlock & OpenSearch Search Engine Plugins
http://mycroft.mozdev.org/index.html

検索プラグイン形式 - Sherlock と OpenSearch

検索プラグインの設定ファイル保存場所は、Windowsの場合、デフォルトで以下の場所。

  • C:\Program Files\Mozilla Firefox\searchplugins\
  • C:\Documents and Settings\USERNAME\Application Data\Mozilla\Firefox\Profiles\ランダム文字列.default\searchplugins\

● Firefox 1.5 までの検索プラグイン形式

Sherlock (日本語) + Mozilla 拡張 (多分)。

PC内には、Sherlockの形式(「定義ファイル(拡張子:src)」と「画像ファイル(拡張子:png,gifなど)」) で保存される。

● Firefox 2 の検索プラグイン形式

OpenSearch に対応したらしい。
OpenSearch は Firefox 2 や Internet Explorer 7 で使える形式。

Sherlock 形式の設定をダウンロードできる(対応している)が、PC内に保存する時は OpenSearchの形式 (xml) に変換されて保存されるっぽい。

Sherlock 形式の設定ファイルをFirefox 2に移行したい

Firefox 2をインストールすると、Firefox 1.5の時に追加しておいた検索プラグインはごっそり削除されちゃう。
なので、インストール前にSherlock 形式の設定ファイルはバックアップしておくこと。

自分で書いた検索プラグインや、どこで入手したか忘れた検索プラグインをFirefox 2に移行する方法。
ダウンロードできるものは、再ダウンロードすれば良い。

Mycroft Project から Sherlock 形式の設定をダウンロードして設定できてるので、その方法を手元で再現してみます。

  1. どこかのWEBサーバにSherlock 形式の設定ファイル(srcファイルと画像ファイル)をアップロードする。
  2. 後述のHTMLファイル(検索プラグインをインストールするJavaScriptを含む)を作成する。
  3. 作成したHTMLファイルにアクセスして、検索プラグインをインストールする。

では、検索プラグインをインストールするHTMLファイルを作成します。

Mozilla Firebirdの検索バー (このblog) のコメントで zRryu さんに「kengoさんのGoing My Wayでは、クリック一発で検索エンジンが取り込めますよ。」と教えてもらってた事を思い出しつつ。

Mycroft Project の 「http://mycroft.mozdev.org/default.js」を参考にすると、こんなJavaScriptを使えば良いっぽい。

function addEngine( ) {
  if ((typeof window.sidebar == "object") && (typeof window.sidebar.addSearchEngine == "function")) {
    window.sidebar.addSearchEngine(
      "<定義ファイル(拡張子:src)までのURI>,
      "<画像ファイル(拡張子:png,gifなど)までのURI>,
      <名称>, <カテゴリ>);
  } else {
    alert("You will need a browser which supports Sherlock to install this plugin.");
  }
}

汎用的に使うならこんな感じかな。
<BASE URL>に作成済みの定義ファイル・画像ファイルを置いておく事。

<html>
<head>
<script type="text/javascript">
/*
 * ・引数
 *     name: 名称・拡張子を除いたファイル名
 *     ext : 画像ファイルの拡張子
 *     cat : 「Mycroft Project」で分類してるカテゴリ名?何でもいいのかも?
 * ・<BASE URL> : 定義ファイル・画像ファイルが置いてあるベースURL
 *     「http://www.example.jp/path/to/」なら「http://www.example.jp/path/to/」。
 *     ローカルマシンからの取り込みは不可っぽいので「C:\temp\」なら「file:///C:/temp/」とはできない。
 */
function addEngine(name, ext, cat) {
  if ((typeof window.sidebar == "object") && (typeof window.sidebar.addSearchEngine == "function")) {
    window.sidebar.addSearchEngine(
      "<BASE URL>" + name + ".src",
      "<BASE URL>" + name + "." + ext,
      name, cat );
  } else {
    alert("You will need a browser which supports Sherlock to install this plugin.");
  }
}
</script>
</head>
<body>
<a href="javascript:addEngine('hoge', 'png', 'Images')">検索バーに hoge を追加</a><br/>
<a href="javascript:addEngine('foo','png','Computer')">検索バーに foo を追加</a><br/>
  :
</body>
</html>

自分で書いてみる

まだ、自分で書いてないけど、そのうち書くこともあるだろう。。。
書いてみた。(後述)

・Creating OpenSearch plugins for Firefox - MDC
http://developer.mozilla.org/en/docs/Creating_OpenSearch_plugins_for_Firefox
Firefox 2.0でどういう風に設定ファイルを書けばいいかはこの辺を見れば分かるっぽい。

・Specifications/OpenSearch/1.1/Draft 3 - OpenSearch
http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document
この辺とか。

「moz:」XML ネームスペースはFirefoxの拡張っぽい。

● OpenSearch形式のテンプレート

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>engineName</ShortName>
<Description>engineDescription</Description>
<InputEncoding>inputEncoding</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,imageData</Image>
<Url type="text/html" method="method" template="searchURL">
  <Param name="paramName1" value="paramName1"/>
  ...
  <Param name="paramNameN" value="paramValueN"/>
</Url>
<Url type="application/x-suggestions+json" template="suggestionURL"/>
<moz:SearchForm>searchFormURL</moz:SearchForm>
</OpenSearchDescription>
  • 「ShortName」は、サーチエンジンの短い名前
  • 「Description」は、サーチエンジンの簡潔な説明
  • 「InputEncoding」は、入力データのエンコーディング
  • 「Image」は、Base-64でエンコードされた画像データ(16x16のアイコン画像など)。DataURLMakerで簡単につくれます。(Data: URI scheme)
  • 「Url」は、検索に使うURL。「method」属性は GET か POST。「template」属性は検索クエリのベースURL。「type="text/html"」と「type="application/x-suggestions+json"」の2種類の書き方がある。
  • 「Param」は、QueryString(GETの時)やPOSTデータ(POSTの時)。key/valueのペア。
  • 「SearchForm」は、検索フォームがあるURL。ユーザが直接WEBサイトへ行けるようにするためのもの。これは、(OpenSearchの仕様ではなく) Firefox仕様なので、「moz:」XML ネームスペースをつける事。

「{searchTerms}」は検索バーに入力した文字列に置換される。

● WEBサイトを表示した時、簡単に検索プラグインを設定できるようにする

Mycroft Project を表示して、検索バーのプルダウンを展開すると、一番下にMycroft Projectの検索プラグインを追加できるようになっている。(下図参照)

簡単に検索プラグインを設定できるようにする

表示中のサイトの検索機能を検索バーに簡単に取り込んでもらえるように、サイト運営者がこの方法をつかって公開できるという事らしい。

この設定をするには、HTMLファイルのhead部分に以下のように追加すればいい。
OpenSearch形式の検索エンジンプラグインへのパスを指定する。

<link rel="search" type="application/opensearchdescription+xml" title="searchTitle" href="pluginURL">
  • 「searchTitle」は、名前。OpenSearch XMLファイルの中の「ShortName」と同じになるはず。
  • 「pluginURL」は、検索プラグインのOpenSearch XMLファイルへのURL。

「Mycroft Project」のサイトでは以下の様になっていました。

<link rel="search" type="application/opensearchdescription+xml" title="Mycroft Project" href="http://mycroft.mozdev.org/opensearch.xml">

Wikipedia等でもこの設定がされていました。

● 自分で書いてみた

良く分からないが、このblogの検索をする検索エンジンプラグインを書いてみた。
こんな感じでいいんだろうか?


<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>Comp Blog</ShortName>
<Description>コンピュータ系blogの検索。(Computer Blog Search)</Description>
<Developer>ike at コンピュータ系blog</Developer>
<InputEncoding>EUC-JP</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAMFBMVEX//3P8+HDw7GrH3WXqt03ReC7OVBnAShaHxVxUq1GBQRk8NhkOi0QAhEIEfT8cWSz9Px63AAAAiElEQVR42mNkYFCu1M08x8DIwGgxmeF47QdGBuaZjgxv0i8wMmgsFWD4v6yOkUFzCZCxLQ9JRGIrkLG0Hqh4tj0DjztQsfAcIMP8PCOjShtQasY+RkZXQ2OGs2/XABkKggzv/61hZFB1ZGBgeLOOkUE0EMh4vZ6RQcQJqPjOfqDtrgoM/9Z8AAD9pCtBsERvWwAAAABJRU5ErkJggg==</Image>
<Url type="text/html" method="GET" template="http://kinshachi.ddo.jp/alluser/cgi-bin/MT/mt-search.cgi">
  <Param name="IncludeBlogs" value="5"/>
  <Param name="search" value="{searchTerms}"/>
</Url>
<moz:SearchForm>http://kinshachi.ddo.jp/kurage/html/MT/comp/</moz:SearchForm>
</OpenSearchDescription>

(2007/12/31 追記 ここから)
このブログ(コンピュータ系blog)自体のパスを変更したので、「CompBlog-OpenSearch.xml」の内容を以下の様に編集しました。

<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>Comp Blog</ShortName>
<Description>コンピュータ系blogの検索 (Computer Blog Search)</Description>
<Developer>ike. last modified:2007/12/31</Developer>
<Image width="16" height="16">data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAoOAAAIAAAAAAAAAAAAAAxA4AAMQOAAACAAAAAAAAAAAAAAD///8AAAAAAAAAAADEDgAAxA4AAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABERERERAAAAEREREREAAAAREREREQAAAAAAAAERAAAAAAAAAREAAAAAAAABEQAAAAAAAAERAAAAAAAAAREAAAAREREREQAAABERERERAAAAEREREREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</Image>
<Url type="text/html" method="GET" template="http://kinshachi.ddo.jp/mt/mt-search.cgi">
  <Param name="IncludeBlogs" value="5"/>
  <Param name="search" value="{searchTerms}"/>
</Url>
<InputEncoding>UTF-8</InputEncoding>
<OutputEncoding>UTF-8</OutputEncoding>
<moz:SearchForm>http://kinshachi.ddo.jp/blog/comp/</moz:SearchForm>
</OpenSearchDescription>

(2007/12/31 追記 ここまで)

このファイルを「CompBlog-OpenSearch.xml」という名前でUTF-8で保存して、「http://www.example.jp/CompBlog-OpenSearch.xml」にアップロードする。

そして、このblogの各ページのHTMLヘッダ部分に以下を追加しておく。

<link rel="search" type="application/opensearchdescription+xml" title="Comp Blog" href="http://www.example.jp/CompBlog-OpenSearch.xml" />

※長くなるので、URL部分は「www.example.jp」でごまかしてます。

これで、このblogを表示して、検索バーをプルダウンすれば、追加できるようになりました。

このblogの検索プラグインを書いてみた

追加される前に表示されているアイコンはfavicon (MozillaではWeb Site Iconと呼ぶらしい) の設定が使われてるみたい。
追加後は検索エンジンプラグインの画像データが使われます。

この方法で取り込むと、「xmlの定義部分」や「Developer要素」は削除されちゃうみたいです。

この検索エンジンプラグインは、多分メンテできないので、よろしく。。。
まぁ、この検索エンジンプラグインを入れたいと思う人も居なさそうですが。。。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Firefox 2 の検索プラグイン (検索バー)

このブログ記事に対するトラックバックURL: http://kinshachi.ddo.jp/mt/mt-tb.cgi/447

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ikeが2006年11月 4日 01:40に書いたブログ記事です。

ひとつ前のブログ記事は「DataRecovery」です。

次のブログ記事は「Resizeable Form Fields」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

Powered by Movable Type 4.261