ConQueryの概要と独自検索pluginの例

ConqueryFirefoxの検索機能を強化する拡張で、以下に述べるような特徴がある。

  • 右クリックから検索プラグインを呼び出し、選択文字列で検索できる。
  • GETメソッドだけでなくPOSTメソッドも扱える。(Firefox2.0系列ではPOSTメソッドにデフォルトで対応しているが、Firefox1.5系列まではPOSTメソッドが使えなかった。)
  • OpenSearchプラグインMozSearchプラグインに対応。
  • 階層化したディレクトリに対応。
  • 検索プラグインを保存するディレクトリを任意の場所に出来る。
  • ConQuery独自の検索plugin(拡張子cqr)を使うとより高度な操作を行える。
    • 正規表現による検索文字列の抽出、変更。
    • 検索文字列によって検索プラグインの表示・非表示を動的に切り替え。
    • 検索クエリ編集用のGUIを提供。
    • 選択文字列だけでなく、ポインタの下のURLや現在表示中のURLも検索の対象に出来る。
    • 検索結果を開く方法をプラグインごとに指定できる。前面タブ、後面タブ、別ウィンドウ、ウィンドウの位置、大きさ等々。
  • OpenSearch検索プラグインに上位互換な"ConQuery xml plugin"を使って、上のConQueryプラグインと同じ事が出来る。(ただしドキュメントが無い。)

詳しくはスクリーンショットドキュメントプラグインの例を参照。
現在の最新版はバージョン1.7.3だが、いくつかのバグを修正した1.7.3-mod2がShadow912さんのブログで公開されている。
例としてConQueryプラグインの例としてFree Dr.Web link checkers用検索プラグインを書いてみる。
DrWeb.cqr:

<SEARCH
   version = "1.0"
   name="Dr.Web"
   description="Dr.Web online virus scan"
   method="POST"
   action="http://online.drweb.com/result"
   queryCharset="utf-8"
   showiftarget="[:linkurl]     [:selection]"
   showif="((https?|ftp):\/\/[^\s]*)"
>

<input name="url" value="[:prompt][:matched:1]" label="Edit url">
<input name="url" value="[:url]" label="This page">
<input name="lng" value="jp">

</SEARCH>


このDrWeb.cqrとアイコンDrWeb.icoをConQueryで設定したディレクトリに保存すると、ConQueryのメニューに表示される(Firefox起動中でも読み込まれる)。
この例ではポインタの下にhttpかhttpsftpのリンクがあればそれを検索クエリにする。そうでなく選択文字列がhttpかhttpsftpではじまるURLらしい文字列の場合はそれを検索クエリにする。いずれの場合も検索クエリを投げる前にUIを表示して編集する事が出来る。またドロップダウンリストを使って、現在閲覧中のURLを検索クエリに設定する事も出来る。
参考リンク
http://developer.mozilla.org/ja/docs/Creating_OpenSearch_plugins_for_Firefox
http://developer.mozilla.org/ja/docs/Creating_MozSearch_plugins