Если ваши ссылки на документацию имеют четко определенный URI, вы можете создать небольшую программу, которая автоматически создаст правильный URI с учетом идентификатора документации и некоторого идентификатора объекта.
Например, я написал небольшую команду Ubiquity , которая позволяет мне быстро открывать последнюю документацию по любому объекту Qt, просто перейдя в Firefox и набрав ctrl + пробел , чтобы открыть консоль 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. Я оставлю это как упражнение для читателя :). Другое решение может состоять в том, чтобы выполнить поиск на веб-сайте (при условии, что он обеспечивает надлежащий REST API для поиска) и перейти к первому результату.