編集(管理者用) | 編集 | 差分 | 新規作成 | 一覧 | RSS | 表紙 | 検索 | 更新履歴

HidemaruMacroForBookmarklet

(主にFirefox向けの)bookmarkletを作成する時に利用している秀丸マクロです。

js2bmlt.mac

//js2bmlt.mac
selectall;
copy;
newfile;
disabledraw;
paste;

gofiletop;
insert "javascript:";
replaceallfast "\\n","%0A", regular;
replaceallfast "\\t","%09", regular;
replaceallfast "    ","%09", regular;
gofiletop;
replacedown "(%0A|%09|%20)+$", "", regular;
gofileend;

selectall;
cut;
quit;

例えば、秀丸上で

(function(){
	alert('Hello World!');
})();

というスクリプトを書いた状態でjs2bmlt.macを実行すると、

javascript:(function(){%0A%09alert('Hello World!');%0A})();

という内容がクリップボードに保存されます。あとはブラウザのアドレス欄にペーストしてEnterを押すだけで実行テストができます。

※一瞬新しいウィンドウが開いてすぐ閉じますが、気にしないでください。

FirefoxはURI中のパーセントエンコーディングを該当の文字にデコードして認識してくれるので(%0Aは改行、%09はタブとして解釈)、上記のようなスクリプトも問題なく実行できます。

bmlt2js.mac

//bmlt2js.mac

gofiletop;
replacedown "^javascript:", "", regular;
replaceallfast "%0A", "\\n", regular;
replaceallfast "%09", "\\t", regular;
replaceallfast "%20", " ",   regular;

js2bmltで作成した、

javascript:(function(){%0A%09alert('Hello World!');%0A})();

というbookmarkletを、

(function(){
	alert('Hello World!');
})();

という改行・インデント入りのスクリプトに戻すためのマクロです。

スクリプトをbookmarkletにする場合、改行を削除しなければならないため、一旦ブラウザのブックマークに保存すると再編集するのが困難になってしまいますが、js2bmlt.macにより改行・インデントをパーセントエンコーディングにより保存しておけば、ブラウザのブックマークに保存した後でも再編集するのが楽になります。

おまけ・js2bmlt2.mac

//js2bmlt2.mac
selectall;
copy;
newfile;
disabledraw;
paste;

gofiletop;
insert "javascript:";
replaceallfast "\\n"," ", regular;
replaceallfast "\\t"," ", regular;
replaceallfast " +",  " ", regular;

selectall;
copy;
quit;

OperaやIEでbookmarklet(JavaScript)の動作確認をする時に使っています。改行・タブは空白に変換してしまうので元に戻すことはできませんが…