ドキュメント参照の URI が明確に定義されている場合は、ドキュメント ID と何らかのエンティティ識別子を指定して、正しい URI を自動的に構築する小さなプログラムを作成できます。
たとえば、私は簡単なUbiquityctrlコマンドを作成しました。これにより、Firefox に切り替え、 +を入力spaceして Ubiquity コンソールをポップアップし、次にqt QSomeClass
.
Ubiquity コマンドの完全なコードは次のとおりです (既に Ubiquity をインストールしている場合は、この空白のページでコマンド フィードを購読できます)。
CmdUtils.makeSearchCommand({
names: ["qt"],
author: {name: "Luc Touraille"},
url: "http://doc.qt.nokia.com/main-snapshot/{QUERY}.html",
icon: "http://qt.nokia.com/favicon.ico",
description: "Searches the Qt Documentation for your word."
});
ご覧のとおり、URL が適切に構成されていれば、非常に単純で、他のオンライン ドキュメントに簡単に適用できます。
編集
ニーズに合わせて調整できる、より一般的なバージョンを次に示します (テンプレート マップに入力するだけです)。
var urlTemplates = {
"QT": "http://doc.qt.nokia.com/main-snapshot/{QUERY}.html",
"MPL": "www.boost.org/doc/libs/release/libs/mpl/doc/refmanual/{QUERY}.html",
".NET": "http://msdn.microsoft.com/en-us/library/{QUERY}.aspx"
};
CmdUtils.CreateCommand({
names: ["doc"],
author: {name: "Luc Touraille"},
arguments: [ {role: "object",
nountype: /^[0-9a-zA-Z_.-]*$/,
label: "entity"
},
{role: "source",
nountype: [source for (source in urlTemplates)],
label: "documentation"
} ],
description: "Searches the documentation for some entity on a given documentation reference.",
_getSearchResultUrl: function( arguments ) {
var documentationSource = arguments.source.text;
var urlTemplate = urlTemplates[documentationSource.toUpperCase()];
return urlTemplate.replace("{QUERY}", arguments.object.text);
},
execute: function( arguments ) {
Utils.openUrlInBrowser(this._getSearchResultUrl(arguments));
}
});
サンプルの使用:
doc QMainWindow from qt
doc from mpl vector
doc system.idisposable from .net
doc this from .net // with some text selected
もちろん、これは非常に単純な実装であり、ほとんどのサイトで失敗します。より進化したアプローチとして、マップ内の URL テンプレートを関数に置き換えることで、ターゲット URL の構築をより細かく制御できます。これは読者の演習として残しておきます:)。もう 1 つの解決策は、Web サイトで検索を実行し (検索用の適切な REST API が提供されている場合)、最初の結果にジャンプすることです。