mirror of
https://github.com/rkd77/elinks.git
synced 2024-10-29 08:17:18 -04:00
36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
/* Modern, bookmark-based smartprefixes */
|
|
|
|
var loaded_smartprefixes_common_code;
|
|
if (!loaded_smartprefixes_common_code) {
|
|
do_file(elinks.home + "smartprefixes_common.js");
|
|
loaded_smartprefixes_common_code = 1;
|
|
}
|
|
|
|
/* Create a top-level folder titled "smartprefixes". In it, add a bookmark
|
|
* for each smartprefix, putting the keyword in the title and either a normal
|
|
* URI or some JavaScript code prefixed with "javascript:" as the URI. When you
|
|
* enter the keyword in the Go to URL box, ELinks will take the URI
|
|
* of the corresponding bookmark, replace any occurrence of "%s" with the rest
|
|
* of the text entered in the Go to URL box, evaluate the code if the URI
|
|
* starts with "javascript:", and go to the resulting URI.
|
|
*/
|
|
function rewrite_uri(uri) {
|
|
if (!elinks.bookmarks.smartprefixes) return uri;
|
|
|
|
var parts = uri.split(" ");
|
|
var prefix = parts[0];
|
|
|
|
if (!elinks.bookmarks.smartprefixes.children[prefix]) return uri;
|
|
|
|
var rule = elinks.bookmarks.smartprefixes.children[prefix].url;
|
|
var rest = parts.slice(1).join(" ");
|
|
|
|
if (rule.match(/^javascript:/))
|
|
return eval(rule
|
|
.replace(/^javascript:/, "")
|
|
.replace(/%s/, rest));
|
|
|
|
return rule.replace(/%s/, escape(rest));
|
|
}
|
|
elinks.goto_url_hooks.push(rewrite_uri);
|