craftというworkflowを作った。MarkdownのLinkフォーマットに従ったテキストが保存される。Link化と呼ぶ)にはいくつかのアプローチが有る。workflowを利用してurlをコピーして引数として渡しスクリプトフィルタで自動加工する前者に関しては、ブラウザプラグインを利用しているので現在閲覧中のWebサイトのURLとタイトルを簡単に習得できる。特定のブラウザでしか利用出来ないし、全てのブラウザのプラグインを作成するのは面倒である。それに比べて、後者はMacのアプリケーションAlfredを利用するものなので特定のブラウザという制約は受けない。Link化したいURL情報をプログラムに渡す方法はシンプルで実装も簡単そうだ。workflowのスクリプトフィルタの引数に加工したURL情報を渡す方法を採用する。Link化するURLが持つタイトル情報などは以下のように取得する。Webページのタイトルhtmlの<head><title>XXXX</title></head>の中にあるXXXXが目的のWebページのタイトルになる。/>しかし、今回はworkflowの引数としてGFM化したいURLを入力するのでその情報を利用することとする。ホットキーで一発で現在開いているWebページのURLを持ってきたいときには使いたいと思う。workflowの作成手順workflowはpythonのAlfredライブラリの使い勝手が良さそうなのでpythonで実装した。以下はメモ書き程度のworkflowの作成手順である。実装はアプローチに則り行った。ID:一意に決まるものが良い。自分の運用しているWebサイトのFQDNとかを使ってもいいだろう。documentationに従った。Workflowモジュールを使うと簡単に実装できる。TrueでAlfredからEnterキーで実行可能にする。このプログラムはスクリプトフィルタブロックのScriptのフォームに直接記述することも可能だが、それをするとinfo.plistにプログラムが保存されてしまう。管理の面を考えると外部のプログラムを呼び出す形の方が良さ気である。渡された引数をwf.args[0]で参照している。Centerに通知を表示するブロックを作成する。TitleやTextの値は好きなものに変化すれば良い。scriptブロックの結果をクリップボードに保存するブロックを作成する。難しいことはないが、直前のブロックの処理内容を参照するために{query}マクロを利用する。完成!最終的にはこんな感じのworkflowブロックが出来る。作ったworkflowは他の人も使いたいかもしれないから共有しよう。共有方法はPackalというサービスを使うのが主流のようだ。Forum、このサイトにはPackalへのリンクを貼ることにした。まとめ最低限のプログラムしか書いていないが、一応自分の目的とするworkflowの作成をすることができた。Linkの作成から解放されると思うと清々しくなる。今回は、ブラウザのプラグインで作成するのも選択肢としてはあったが、それだとブラウザを変えた瞬間使えなくなってしまうのでMacを使っている限り使えるもので作成した。Link化にしか対応していないが、URLの短縮とかURLに纏わる便利機能などにも対応させようと思う。