スクリプター:撮影現場で場面の一貫性を保つために状況を記録する係。
Scripter
プリプリは尊い。HandyFlowy用のScriptMakerが走らないので、DeskFlowyでも使える汎用に書き換えてみました。下記リンクはHandyFlowy用ですが、展開したリンクをDeskF...
ScriptMakerをいじっていたら疑問が浮かんできました。スクリプトをノートに書く必要はあるのか、と。直接トピックにスクリプトを書き、そのまま登録するほうが手軽そう。
もちろん、そういう使い方をWorkFlowyは想定していません。想定していないからこそ、そこを攻め崩したい。それって「ジャズ」だよなあ。元曲が秘める潜在能力を引きずり出す。そのためのスクリプトを作ってみました。
登録リンクはこちら → http://tinyurl.com/yanh6qfe
スクリプトの書き方
見出しにスクリプト名、下位トピックにスクリプト本体を並べる。そういう方法です。
アウトライナーはプログラミングと相性がいい。モジュールがブロック化されて管理しやすくなります。実行順の入れ替えをする。ブロックごとコピーする。不要になったサブルーチンを非表示にする。どの体験も面白い。今までにない感覚がここにはある。
スクリプトの登録
Scripterを実行すると、トピック全体をスクリプトとして機能拡張パネルに登録します。階層構造はインデントとして読み込まれます。あとで保守しやすい。閉じ括弧の扱いが不自然だけど、ブロック化の観点から下位トピックに置いて使っています。悪くなさそう。
応用例 Bear
Bearに階層構造ごと転送するスクリプトを組んでみました。Bearという名のトピックを作り、その下位トピックに下記スクリプトを貼り付けてください。
var d=0;
var p=selectOnActivePage(".selected").getProject();
var s=child(p);
url="bear://x-callback-url/create?text="+encodeURIComponent(s);
open(url);
function child(x){
d++;
var a=x.getName().text()+"\n";
var c=x.getVisibleChildren();
for(var i=0;i<c.length;i++){
for(var j=0;j<d;j++) a+=" ";
a+=child(c.eq(i));
}
d--;
return a;
}
Scripterを実行すると機能拡張パネルに追加されます。DeskFlowyは出力が揃っていないので、Bearに転送してから加工する。これはこれで便利じゃないでしょうか。
このスクリプトは他のスクリプトを作るテンプレートになります。トピックを取得する child(p)。URLスキームを実行する open(url) 。どちらもお役に立ちますよ。
まとめ
WorkFlowyでのプログラミングは楽しいです。書きやすい。動かしやすい。試しやすい。実行時にエラーの行番号が出るわけじゃないから、開発環境とは呼べないですが、そこあたりは根性でカバーするしかないところ。Javascriptのルーズな感じが使いやすい。