DraftPad用の置換アシストを作成するアシスト GREPMaker

文中の文字列を一括変換。所定の言い回しに統一するときとか、変換パターンが決まってるとき、手作業だと面倒だしミスも起こりやすい。でもアシストを使えば、そんな心配も要りません。DraftPadが代わりに作業してくれる。だけど、そのアシストを作るのが難儀なんだよなあ。というわけで:


DraftPad 1.5.3 App Store
対象デバイス: all
カテゴリ: 仕事効率化   価格: ¥0
販売業者: Manabu Ueno
パターン化された置換アシストを自動生成するアシスト。

Title: GREP Maker
URL: draftpad://self/web?source=<script>location.href%3D%22draftpad%3A%2F%2F%2Fwebdelegate%3Fload%3Df%22%3Bf%3Dfunction%28q%29%7Bt%3Dq.t%3Bs%3Dq.s%3Bp%3Dq.p%3Bl%3Dq.l%3Bh0%3D%22%5Cndraftpad%3A%2F%2Fself%2Fweb%3Fsource%3D%3Cscript%5C%3Elocation.href%3D%2522draftpad%3A%2F%2F%2Fwebdelegate%3Fload%3Df%2522%3Bf%3Dfunction%28q%29%7Bt%3Dq.t%3Bs%3Dq.s%3Bp%3Dq.p%3Bl%3Dq.l%3B%22%3Bh1%3D%22draftpad.replace%28t%2Ct.length%2C0%29%3B%7D%3C%2Fscript%5C%3E%26t%3D%3C%40%40%3E%26s%3D%3C%40%3E%26p%3D%3C%23LOC%3E%26l%3D%3C%23LEN%3E%5Cn%22%3Bt%3Dt.replace%28%2Fgrep%5C%28%28.%2B%29%2C%20%2A%5C%22%28.%2B%29%5C%22%20%2A%5C%29%2Fg%2Ch0%2B%22t%3Dt.replace%28%241%2C%2522%242%2522%29%3B%22%2Bh1%29%3Bdraftpad.replace%28t%2Cp%2Cl%29%3B%7D</script>&t=<@@>&s=<@>&p=<#LOC>&l=<#LEN>

DraftPadに電卓機能を追加するアシスト



grep形式のコマンドを書くと、置換アシストに変換します。
・たとえば「grep(/です/g , "でやんす")」と書く。
GREP Maker を実行する。
grepのところが、ごちゃごちゃ長いアシストに姿を変える。
・このアシストを新規登録。名前は「です→でやんす」か。
・これを実行すれば「です」が「でやんす」に総入れ替えします。


【ちょびっと解説】
変換されたアシストは下記の形式をしています。

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;

    t=t.replace(/です/g,%22でやんす%22);

draftpad.replace(t,t.length,0);}
</script>&t=<@@>&s=<@>&p=<#LOC>&l=<#LEN>

初めの三行は定型句。一行目でJavascriptを開く。二行目でDraftPadの本文を操作対象にし、三行目でプレースホルダーを t,s,p,l に代入。ここまでが枕の部分です。五行目にこのアシストの本体が来ます。そして、終わり二行で変更を適用し、Javascriptを閉じる形式。もちろん、五行目の本体を書き換えれば、どんなスクリプトでも組むことが出来ます。
それにしても、かなり削りましたね。takahashi氏の元アシストの優雅さを残せてなくて、すみません。見てのとおり、grep()の中身をreplace()に移し替えてるだけです。その分、正規表現も使えるから、工夫次第で何でも出来ちゃう。ただ引用符関係は、アシスト自体と見なされ止まるのが弱点。一応、五行目を URL Encode すれば回避できますけど。まあ、プログラムを書くのでなければ問題ないので、このままで。
参考:http://takahashihideki.tumblr.com/post/18867745307/draftpad


(追記)GREPMakerアシストの正規表現について