TextwellのアクションをDraftPad風に記述して作る方法 AssistMaker

サッと書くならアシスト形式で。


DraftPadのアシストをTextwellのアクションに変換する AssistAction
シンプルなアシストに限りますが。スクリプト作成にはアシスト形式のほうが書きやすい。@を使って簡単に表記できる。TextwellはJavascriptの語法に準拠している分、柔軟ではあるけれど煩雑。簡単...
以前作ったAssistActionをアップデートしてみました。TextwellはJavascriptが使えるのが利点であると同時に敷居が高い。URLスキームが分かるアプリがあったとき、連携スクリプトを作るのに手間がかかります。手間ひまかけず、すぐ試したいじゃないですか。

// アクションの「説明」に入る署名を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
分類: 仕事効率化,ユーティリティ
価格: \300 (Sociomedia)

出来たアシストをブログに載せる場合は、下記アクションを実行してください。上述の形式のままtinyurl.comで短縮URLに変換し、文末に追加します。これを公開するだけ。

// アクションの「説明」に入る署名を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 なのか。アプリごとに違うから困りもの。ここあたり標準化されたらなあ。

  • Textwell用の自作アクション集