2013年9月29日日曜日

Alfredで選択したテキストをNode.jsで処理してクリップボードに入れる

というのをAlfredでやろうとしたら、Node.jsはMacにデフォルトで入ってないので、シェルから叩くような感じでやればできなくはない。

以下のような、

選択してるテキスト -> シェルスクリプト -> クリップボードへコピー & Growl通知

というWorkflowを作り、

 Alfred Preferences 2013 09 29 22 13 12

シェルスクリプトは以下のような感じにすればシンプルに実現できる。

/Users/azu/.nodebrew/current/bin/node <<END
var res = "{query}".toLowerCase().replace(/-(.)/g, function(a, b) {
 return b.toUpperCase() 
});
console.log(res);
END

Node.jsで {query} (この場合は選択してるテキストが入る) を処理した結果をconsole.logで標準出力に流してあげれば、次のflowに流れる。
Node.jsのパスは各自違うだろうけど…  (ちゃんとやるならもう少し違う方法が必要そう)

試しに作ったものは File “JavaScript with Selected Text.alfredworkflow” においておきます。