5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pandoc+Automatorで、MarkdownとTextileを右クリックで相互変換

Last updated at Posted at 2015-08-15

最近は何かと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に変換」という名前で新規書類を作成。書類の種類は「サービス」にする。

make-service.png

左の「ライブラリ」から「シェルスクリプトを実行」を探してタスクに追加し

  • 「"サービス"は、次の選択項目を受けとる:」を「書類」に
  • 「検索対象:」を「Finder」に
  • 「シェル:」をpandocにパスが通ってる普段使いのシェルに設定
  • 「入力の引き渡し方法:」を「引数として」に設定
  • シェルスクリプトの入力欄に以下を記入
pandoc "$1" -o "$1".textile

automator.png

あとは、Finderで拡張子が〜.mdになっている項目を右クリックして「サービス」から「Textileに変換」を選べば、その場所に拡張子が〜.textileのファイルが作成される。

なお、pandocはファイルの拡張子で変換元のフォーマットを判定してくれるので、HTMLやOPML等、他のテキストフォーマットでもTextileに変換できる場合がある。

Pandocコマンドの例

あとは、同じようにシェルスクリプトの拡張子だけを変えた「Markdownに変換」サービスを作成すれば完了。両者の相互変換が簡単にできるようになる。

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?