vimperator のコマンドから「はてなブックマーク」
vimperator 0.5.3用に書き直しました
そろそろvimperator
タグを作ろうかな...
:hatenaBookmark URL
ではてブの追加画面へ飛ぶスクリプトを書いた。URLは任意で無ければ、現在開いているURLとなる。
URL引数を受けるようにしたのはCtrl + Shift + zと併用する事でURLをちょっと編集して登録が出来るようにするため。Open Tech PressとかdeveloperWorks Japanとかのフィードを購読しているとURLのクエリに変なのが付いて何か嫌なので、それを取り除くのが目的。
そして、今回はHOME/.vimperatorrcではなく、HOME/.vimperator/plugin/hatenaBookmark.jsとして記述してみた。HOME/.vimperator/plugin/以下に*.jsファイルを作ると自動的にJavaScriptとして読み込まれるのだ*1。
vimperator.commands.add(new vimperator.Command(['hatenaBookmark','hateb'], function(args){ if (!vimperator.buffer.title || !vimperator.buffer.URL || vimperator.buffer.URL=='about:blank'){ return false; } var str = "javascript:window.open('http://b.hatena.ne.jp/add?mode=confirm&is_bm=1&title="; var title = escape(vimperator.buffer.title); var url = escape(vimperator.buffer.URL); if (args){ title = ''; url = escape(args); } url = url.replace(/%23/g, '%2523'); vimperator.open(str + title + "&url=" + url + "','_blank');undefined;"); },{ usage: ['hatenaBookmark [url] ','hateb [url]'], shortHelp: 'Bookmark to HatenaBookmark Service', completer: function (filter) { return vimperator.completion.get_url_completions(fileter); } } )); vimperator.mappings.add(new vimperator.Map(vimperator.modes.NORMAL, ['<C-Z>'], function() { vimperator.commandline.open( ':', 'hatenaBookmark ' + vimperator.buffer.URL, vimperator.modes.EX ); },{ shortHelp: 'Bookmark to HatenaBookmark Service' } ));
*1:それ以外は.vimperatorrcと同じような動きとなる