TextwellのアクションをDraftPad風に記述して作る方法 AssistMaker
サッと書くならアシスト形式で。
DraftPadのアシストをTextwellのアクションに変換する AssistAction以前作ったAssistActionをアップデートしてみました。TextwellはJavascriptが使えるのが利点であると同時に敷居が高い。URLスキームが分かるアプリがあったとき、連携スクリプトを作るのに手間がかかります。手間ひまかけず、すぐ試したいじゃないですか。
シンプルなアシストに限りますが。スクリプト作成にはアシスト形式のほうが書きやすい。@を使って簡単に表記できる。TextwellはJavascriptの語法に準拠している分、柔軟ではあるけれど煩雑。簡単...
// アクションの「説明」に入る署名をdescに書いてください。 desc="by wineroses."; d=new Date(); desc+="\n("+d.getFullYear()+"/"+(d.getMonth()+1)+"/"+d.getDate()+")"; s=T.line(2); command=(/^https?/.test(s))? "load":"urlScheme"; assist="\""+s.replace(/<@@>/g,"\"+T.stdin.text+\"").replace(/<@>/g,"\"+T.stdin.currentText+\"").replace(/<@L([0-9]+)~>/g,"\"+encodeURIComponent(T.lines($1,null))+\"").replace(/<@L([0-9]+)>/g,"\"+encodeURIComponent(T.line($1))+\"").replace(/<#LOC>/g,"\"+T.range.loc+\"").replace(/<#LEN>/g,"\"+T.range.len+\"")+"\""; assist=assist.replace(/\+""$/,""); s=T.line(3); option=(s)? s:"none"; src="T(\""+command+"\",{\nurl:"+assist+",\noption:\""+option+"\"})"; location="textwell:///importAction?translucent=false&title="+encodeURIComponent(T.line(1))+"&source="+encodeURIComponent(src)+"&desc="+encodeURIComponent(desc);
登録リンクはこちら→ http://tinyurl.com/lk3cvsy
(ソースにある変数descを自分の署名に書き換えてください)
一行目にアクション名、二行目にアシスト形式のスクリプトを書きます。アシスト形式はURLアドレスでもURLスキームでも良い。たとえば瞬間日記に保存したい場合、下記のようにTextwellに並べます。「<@@>」のところが本文と置き換わる仕様。
瞬間日記に保存 momentdiary://?t=<@@>
瞬間日記 5.7
分類: ライフスタイル,仕事効率化
価格: 無料 (Utagoe Inc.)
AssistMakerを起動するとアクションの登録画面になる。良ければ右上の「保存」で完了。ソースを見ればTextwellのアクション形式に変換されています。また「説明」に変数descの署名が入る。これで「瞬間日記に保存」というアクションが使えるようになります。
アシスト形式には、以下のプレイスホルダーが使用できます。
<@@> …本文全体 <@> …カーソル行の文字列か、選択中の文字列 <@L1> …一行目の文字列 (数字を変えれば行数も変更) <@L2~> …二行目以降の文字列 (数字を変えれば行数も変更) <#LOC> …カーソルの位置 <#LEN> …選択中の文字数
Textwell 1.1.7出来たアシストをブログに載せる場合は、下記アクションを実行してください。上述の形式のままtinyurl.comで短縮URLに変換し、文末に追加します。これを公開するだけ。
分類: 仕事効率化,ユーティリティ
価格: \300 (Sociomedia)
// アクションの「説明」に入る署名をdescに書いてください。 desc="by wineroses."; d=new Date(); desc+="\n("+d.getFullYear()+"/"+(d.getMonth()+1)+"/"+d.getDate()+")"; s=T.line(2); command=(/^https?/.test(s))? "load":"urlScheme"; assist="\""+s.replace(/<@@>/g,"\"+T.stdin.text+\"").replace(/<@>/g,"\"+T.stdin.currentText+\"").replace(/<@L([0-9]+)~>/g,"\"+encodeURIComponent(T.lines($1,null))+\"").replace(/<@L([0-9]+)>/g,"\"+encodeURIComponent(T.line($1))+\"").replace(/<#LOC>/g,"\"+T.range.loc+\"").replace(/<#LEN>/g,"\"+T.range.len+\"")+"\""; assist=assist.replace(/\+""$/,""); s=T.line(3); option=(s)? s:"none"; src="T(\""+command+"\",{\nurl:"+assist+",\noption:\""+option+"\"})"; url="textwell:///importAction?translucent=false&title="+encodeURIComponent(T.line(1))+"&source="+encodeURIComponent(src)+"&desc="+encodeURIComponent(desc); link="http://tinyurl.com/api-create.php?url="+url; q=new XMLHttpRequest(); q.open("get",link,false); q.send(null); T("add",{text:q.responseText});
登録リンクはこちら→ http://tinyurl.com/lywf7eq
URLスキームはiOSの特徴だと思う。パソコンでもあった仕組みだけど、そんなに活用はされていなかった。ソフトウェアはそもそも単体で完成すべきものだった。
iOSのアプリは一つ一つが非力で、互いの連携が必要になる。システムに食い込むアプリをAppleが認めないのも一因ですが、その分、新しい有機的連合が生まれてきています。URLスキームはその鍵。でもそのためには、書式を統一してほしい。新規作成は new なのか create なのか。アプリごとに違うから困りもの。ここあたり標準化されたらなあ。