DraftPadでJavascriptを圧縮するアシスト ScriptPacker

春を飛び越え、初夏になりました。


DraftPad 1.5.4 App Store
対象デバイス: all
カテゴリ: 仕事効率化   価格: ¥0
販売業者: Manabu Ueno
そんなわけでDraftPad。スクリプトの実行に対応してるおかげで、ブックマークレットやアシストの作成が効率よくなりました。ただ、毎回面倒な作業がある。そう、スクリプトの圧縮。ふだんは階層関係を把握しやすいようにインデントしてるのですが、いざ仕上げるときは改行や空白を削らないといけない。考えてみたら、これこそアシストで自動化すべきところです。
DraftPadが自前でJavascriptをサポートしてるよ


Title: ScriptPacker
URL: draftpad://self/web?source=<script>location.href=%22draftpad:///webdelegate?load=f%22;f=function(q){t=q.t;s=q.s;p=q.p;l=q.l;try{if(l==0){d=t.length;a=s=t;b%3D%22%22%3B%7Delse%7Bd%3DNumber%28p%29%2BNumber%28l%29%3Ba%3Dt.substr%280%2Cd%29%3Bb%3Dt.substr%28d%29%3B%7Dc%3D%22%5Cn%22%2Bs.replace%28%2F%5Cn%20%2A%2Fg%2C%20%22%22%29%2B%22%5Cn%22;draftpad.replace(a+c+b,d+1,0);}catch(e){alert(e);}}</script>&t=<@@>&s=<@>&p=<#LOC>&l=<#LEN>

圧縮アシスト。テキスト全体をスクリプトと見なし、改行や空白の削除を行います。一繋がりのスクリプトにしてしまう。これに「javascript:」を付ければブックマークレットになるし、scriptタグで挟めば内蔵ブラウザ用のアシストに変わります。他にも応用できるかも知れません。
また、選択範囲の圧縮にも対応してます。文中の一部だけくっつけたい場合、あらかじめ選択状態にしてください。一本化したスクリプトが、その選択範囲の後に追加されます。


Title: ScriptUnpacker
URL: draftpad://self/web?source=<script>location.href=%22draftpad:///webdelegate?load=f%22;f=function(q){t=q.t;s=q.s;p=q.p;l=q.l;try{if(l==0){d=p-2;a=t;b=c%3D%22%22%3B%7Delse%7Bd%3DNumber%28p%29%2BNumber%28l%29%3Ba%3Dt.substr%280%2Cd%29%3Bb%3Dt.substr%28d%29%3Bc%3D%22%5Cn%5Cn%22%3Bh%3Dk%3Dm%3D0%3Bfor%28i%3D0%3B%20i%3Cs.length%3B%20i%2B%2B%29%7Bg%3Ds.charAt%28i%29%3Bif%28m%3D%3D1%29%7Bm%3D0%3Bif%28g%3D%3D%27%7D%27%29%20h--%3Bfor%28j%3D0%3B%20j%3Ch%3B%20j%2B%2B%29%20c%2B%3D%22%20%20%20%20%22%3B%7Dc%2B%3Dg%3Bif%28g%3D%3D%27%28%27%29%20k%2B%2B%3Bif%28g%3D%3D%27%29%27%29%20k--%3Bif%28%28k%3D%3D0%29%20%26%26%20%28g%3D%3D%27%3B%27%20%7C%7C%20g%3D%3D%27%7B%27%20%7C%7C%20g%3D%3D%27%7D%27%29%29%7Bm%3D1%3Bc%2B%3D%22%5Cn%22%3Bif%28g%3D%3D%27%7B%27%29%20h%2B%2B%3B%7D%7Dc%2B%3D%22%5Cn%22;}draftpad.replace(a+c+b,d+2,0);}catch(e){alert(e)};}</script>&t=<@@>&s=<@>&p=<#LOC>&l=<#LEN>

こちらは反対に、スクリプトを展開するアシスト。「 { } ; 」の三つの記号を検出すると、インデントしながら改行します。誤動作を防ぐために、対象となるスクリプトを選択状態にしなければ作動しない仕様。かなり手抜きなので、込み入ったスクリプトだと迷走するかも知れません。そこあたり、寛容な心と手動での修正をお願いします。許し合う心でみんなハッピー。


ブックマークレットは面白いんだけど、作るまでが厄介。もう少し楽できないかと思って組んだアシストなので、とりあえず動いた段階で、目的は達成してしまいました。不恰好なところもあるけど、良いんです、手抜きさえできれば。