それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Firefoxのカスタム検索エンジンの作成と追加

自分で設定したカスタム検索エンジンFirefox検索エンジンに設定する。。

カスタム検索エンジンプラグインを、探すの面倒だし、site:www.example.com を追加するだけなのに、いちいちXML開くのも面倒すぎる話。

 Firefox検索エンジンの保存場所

カスタム検索エンジンは次の場所に保存される

$User_Pref_Dire/searchplugins

で、管理される

searchpluginsは初期状態で作成されてないので

mkdir searchplugins

しておく。

ユーザーのプロファイルの格納場所はOSXなら

~/Library/Firefox/Profiles/$key.default/

にありました。windowsならuserのprofileですね。

search.json search-metadata.json

これらが、検索エンジンの設定の本体で、起動時に読み込まれる。

searchplugins/*.xml
↓
search.json # json 化キャッシュ
↓
search-metadata.json # 短縮キーなどの設定

という関連になっている

デフォルトの検索エンジンの格納場所

デフォルトの検索エンジンの設定は、Firefoxの本体のディレクトリに存在する。

/Applications/Firefox.app/Contents/Resources/browser/searchplugins/

検索エンジンのデフォルトの設定が存在する。

search plugin の作り方

  1. 検索に必要なパラメタの調査
  2. xml を作成する 1.searchplugsに放り込む

との流れになる。

検索に必要なパラメタ。

だれでもわかる、URLの引数が一番楽

検索文字がURLのパスの一部の場合

たとえば、whoisを調べる場合。

http://whois.domaintools.com/mixi.jp

ここから

http://whois.domaintools.com/{searchTerms}

のように取り出す。

検索文字がURLのGET引数の一部の場合

通常のGET検索の場合、たとえば、php.netでstrlenを調べる場合。

http://www.php.net/search.php?show=quickref&pattern=strlen

ここから

http://www.php.net/search.php?show=quickref&pattern={ここが文字}

のように、URLのどこの部分に検索文字を放り込むかを調べておく

POSTの場合

POSTの場合は、XMLにPOSTの値を書くので、送信先URLを調べておく

XMLを書く

ALC英辞郎の辞書検索の場合、次のXMLを作った

以下の様なXMLを作って eowl.alc.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>eow.alc.co.jp</ShortName>
  <Description>eow.alc.co.jp</Description>
  <InputEncoding>UTF-8</InputEncoding>
  <Image width="16" height="16" type="image/x-icon">data:image/x-icon;base64,http:/eow.alc.co.jp/favicon.ico</Image>
  <Url 
    type="text/html"
    method="GET"
    template="http:eow.alc.co.jp/search">
       <Param name="q" value="{searchTerms}"/>
  </Url>
</OpenSearchDescription>

検索URLは次のようになっていて、

検索URL: http:eow.alc.co.jp/search?q=検索文字

ここから

検索送信先URL: http:eow.alc.co.jp/search
検索パラメタ  : ?q={searchTerm}

と解釈してXMLに記述するだけ。簡単

あとはコレを保存

あとは、これを、保存してFirefoxを再起動すると好きなだけ、検索エンジンを定義できた。

xmlの書き方はいくつかある。

Firefox の検索アドオンのページを見ていると、書式が若干に個々で違ったり、XMLのNSプレフィックスをつけているようでした。

webkit のブラウザが、タブ数30くらいが限界なので、久しぶりにFirefoxを引っ張り出してきた。 調べ物をしているとタブの数なんて100近く突破するんだよね。てかタブなんてそんなに閉じない。

で、firefoxは相変わらずadd-on 地獄何だけど、どうしたら良いか。add-on紹介のアフィブログだらけでもうね。。