無いなら自分で作ればいいじゃない。
ActionMaker
Drafts5のアクション・リストに登録するアクション、それがActionMakerです。無料ユーザーでもアクションを作ることができます。このActionMakerを前提に解説します。
ActionMakerの登録はこちら → http://tinyurl.com/y7ye7dj6
今日のミッション
Drafts5のテキストを他のアプリに転送する方法を考えてみます。
URLスキームで転送
Simplenoteにテクストを渡すアクションを作ります。まず、Drafts5に下記スクリプトを書きます。一行目の「Simplenote」がアクション名で、それ以降がJavascriptになります。書き終わったらActionMakerを起動します。インポート先に答えれば登録終了です。
Simplenote
text = editor.getText();
url = "simplenote://new?content="+encodeURIComponent(text);
app.openURL(url);
editor.focus();
スクリプト解説
スクリプトの内容を見ていきます。
text = editor.getText();
Drafts5の本文はeditorで扱われます。読み込みは editor.getText() 、書き込みが editor.setText() です。このスクリプトでは本文を取得し変数textに代入しています。
url = "simplenote://new?content="+encodeURIComponent(text);
SimplenoteのURLスキームは「simplenote://new?content=テクスト」です。なので、先ほどの変数textをコード化して連結し、変数urlに代入します。
app.openURL(url);
Drafts5の拡張コマンドはappにまとめられています。URLスキームの起動は app.openURL() なので、これを呼び出しSimplenoteにテクストを転送します。
editor.focus();
アクション・リストを開いたままなので、エディタに戻る呪文を唱えます。editorにfocus()で、フォーカスがエディタ画面に移ります。無かっても実害はありません。
クリップボードの使用
本文をクリップボードに保存し、HandyFlowyを起動します。HandyFlowyは直接テクストを転送する方法がないのでクリップボードを経由します。
HandyFlowy
text = editor.getText();
app.setClipboard(text);
url = "handyflowy://";
app.openURL(url);
editor.focus();
クリップボードの読み込みは app.getClipboard()、書き込みは app.setClipboard() になります。あとはSimplenoteと同じです。ほら、何か作りたくなったでしょ?
まとめ
A global "editor" object is available in all action scripts. This object allows manipulation of the ...
テクストの転送について考えてみました。URLスキームで受け渡しするアプリは上記の応用で凌げると思います。URLスキームが無い場合はWorkflow経由でなんとかなるかも。
Drafts5はGitHubにまとめてあるのですが、いくつか動かないコマンドもあります。まだ未実装なのでしょうか。使い方のわかったところから今後も解説していきます。