最近は何かとMarkdownで書かれた情報が多く、Textile文化のRedmineとスムーズに連携しづらいシーンが増えている。(最近のRedmineはMarkdownにも対応しているが、筆者はどう考えてもTextileの方が好きなので変えたくない。)手動でフォーマットをチビチビ書き変えるのは時間の無駄なので、右クリックで書式を変換できるAutomatorを作成した。
- Pandoc
- 色々なテキストファイルを相互変換できるhaskell製アプリケーション。
- Automator
- GUIで自動処理をプログラミングできるツールで、MacOSXに最初から入っている。「サービス」や「フォルダアクション」等、シェルスクリプトだけでは作れない自動処理を作成できる。
- サービス
- MacOSXのFinderとかで、右クリックメニューの中にある「サービス」以下の項目のこと。Windowsの「送る」に似た便利な機能。
Pandocのインストール
※あらかじめhomebrewのインストールが必要
%brew update && brew install pandoc
==> Downloading https://homebrew.bintray.com/bottles/pandoc-1.15.0.6.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring pandoc-1.15.0.6.yosemite.bottle.tar.gz
/usr/local/Cellar/pandoc/1.15.0.6: 67 files, 74M
これまで使ったことがない場合はhaskellも同時にインストールされる。haskellのコンパイルにはとても長い時間がかかる場合があるので、途中で止めてしまわないように注意。
Automatorでサービスを作成する
/Applicatoins/Automator.app
を起動して「Textileに変換」という名前で新規書類を作成。書類の種類は「サービス」にする。
左の「ライブラリ」から「シェルスクリプトを実行」を探してタスクに追加し
- 「"サービス"は、次の選択項目を受けとる:」を「書類」に
- 「検索対象:」を「Finder」に
- 「シェル:」をpandocにパスが通ってる普段使いのシェルに設定
- 「入力の引き渡し方法:」を「引数として」に設定
- シェルスクリプトの入力欄に以下を記入
pandoc "$1" -o "$1".textile
あとは、Finderで拡張子が〜.md
になっている項目を右クリックして「サービス」から「Textileに変換」を選べば、その場所に拡張子が〜.textile
のファイルが作成される。
なお、pandocはファイルの拡張子で変換元のフォーマットを判定してくれるので、HTMLやOPML等、他のテキストフォーマットでもTextileに変換できる場合がある。
あとは、同じようにシェルスクリプトの拡張子だけを変えた「Markdownに変換」サービスを作成すれば完了。両者の相互変換が簡単にできるようになる。