こんにちは。東京の開発本部に勤めている川原です。私は普段ドキュメントを書くのにMarkdown形式を採用しているのですが、次の理由があって色々な形式で書く場合が出てきます。
- Redmineでtextile
- 他の部署向けの資料を作成
- google siteに対してHTML
大抵はリッチテキストが用意されているので、困る事がないのですが、なるべく書きなれたMarkdownで書きたいものです。そこで変換ツールであるPandoc
を紹介したいと思います。
Pandocとは
一言でいうとMarkdown等の形式を別の形式(HTML等)に変換するです。これだけを聞くとそれほど大したものでは無いように聞こえるかもしれませんが、驚くことに変換元と変換先の対応項目がかなり多いです。変換可能な項目数はなんと44にもなります。何が対応しているかは公式ページに載っています。
→
と ←
がそれぞれ変換先と変換元の対応項目を表していて⇔
が両方表しています。
使い方
使い方は凄くシンプルでpandoc input.md -o output.html
のようにinputするファイルに変換するファイル名を指定するだけです。試しに公式サイトにあるMarkdown形式ファイルをPandoc
で変換してみます。
変換前
変換後
上手く変換されているようにみえます。変換したものをHTML
で表示します。
ブラウザで表示してみる
うまくいっていますね。ここでは紹介しませんが、PowerPointにも変換をしてくれます。
Pandoc
を紹介している記事もたくさんあるのでぜひとも覗いてみてください。
欠点
HTML
からMarkdown
等に変換するときはMarkdown
で表現できないものはHTMLのtag
として表現されます。HTMLのtag
はMarkdown
内で許容しているのですが、完全にHTMLのtag
を消して変換したいという方には向かないので、注意してください。
Pandoc
は多彩な変換を可能にするために構造を定義しているのですが、構造が定義されていないものに対してはどのような挙動になるのかは実装依存になります。加えて言語がHaskell
のためを実装を追うのは大変だと思います。
最後に
Pandoc
は2006年に初リリースがされましたが、まだまだ開発が盛んで最新リリースが2020年6月29日と定期的にアップデートされています。Pandoc
はHaskell
製のツールで構文解析
を利用して作られています。
項目数が豊富なのもHaskell
だからこそ可能かなと思います。Haskell
がどのように構文解析
をしているかはまた別の機会に書きたいと思います。
インサイトテクノロジーのエンジニアから、様々技術者に役立つTipsをブログ記事でご紹介しています。更新のお知らせはメールマガジンでもご案内しますので、是非下記フォームよりご登録ください。