From 76275303274571b24210d2cbd6b06eb12f37e16e Mon Sep 17 00:00:00 2001 From: janus_wel Date: Thu, 11 Dec 2008 07:18:17 +0000 Subject: refactoring. add PLUGIN_INFO. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@26372 d0d07461-0603-4401-acd4-de1884942a52 --- commandBookmarklet.js | 93 +++++++++++++++++++++++++++++---------------------- 1 file changed, 53 insertions(+), 40 deletions(-) (limited to 'commandBookmarklet.js') diff --git a/commandBookmarklet.js b/commandBookmarklet.js index 989c301..e8a3b51 100644 --- a/commandBookmarklet.js +++ b/commandBookmarklet.js @@ -2,49 +2,62 @@ * bookmarklet wo command ni suru plugin * * @author halt feits - * @version 0.6.0 + * @version 0.6.1 */ -(function(){ - var filter = "javascript:"; - var items = bookmarks.get(filter); - - if (items.length == 0) { - if (filter.length > 0) { - liberator.echoerr('E283: No bookmarks matching "' + filter + '"'); - } else { - liberator.echoerr("No bookmarks set"); - } - } - - const regex = /[^a-zA-Z]/; - items.forEach(function(item) { - var [url, title] = [item.url, item.title]; - var desc = title; - title = escape( title.replace(/ +/g,'').toLowerCase() ); - if (regex.test(title)) { - title = "bm"+title.replace(/[^a-zA-Z]+/g,''); - title = title.substr(0, title.length>50?50:title.length); - } - if (width(title) > 50) { - while (width(title) > 47) { - title = title.slice(0, -2); - } - title += "..."; - } - title = util.escapeHTML(title); - - var command = function () { liberator.open(url); }; +let PLUGIN_INFO = + +{NAME} +convert bookmarklets to command +ブックマークレットをコマンドにする +halt feits +0.6.1 +2.0pre +2.0pre + bmlhatena-bookmark + +== KNOWN BUGS == +When title has non-ASCII characters, it convert to unaccountable command. +タイトルに ASCII 文字以外が含まれている場合、わけのわからないコマンドになります。 + +You should rewrite title of bookmarklet to ASCII characters, to escape this bug. +このバグを避けるためにブックマークレットのタイトルを ASCII 文字のみに書き換えることをおすすめします。 + +]]> +; + +( function () { + +let items = bookmarks.get('javascript:'); +if (!items.length) { + liberator.echoerr('No bookmarks set'); + return; +} + +for (let item in util.Array.iterator(items)) { commands.addUserCommand( - [title], - "bookmarklet : "+desc, - command, - { - shortHelp: "Bookmarklet", - } + [toValidCommandName(item.title)], + 'bookmarklet : ' + item.title, + function () { liberator.open(item.url); }, + { shortHelp: 'Bookmarklet' }, + false ); - }); +} + +function toValidCommandName(str) { + str = 'bml' + escape(str.replace(/ +/g, '').toLowerCase()).replace(/[^a-zA-Z]/g,''); + return str.substr(0, str.length > 50 ? 50 : str.length); +} - function width(str) str.replace(/[^\x20-\xFF]/g, " ").length; -})(); +} )(); // vim:sw=2 ts=2 et: -- cgit v1.2.3