マークダウンで文章を書いてHTML / Docx / PDF に変換する
githubぐらいでしか使ったことがなかったマークダウンですが、Macで書類を書こうと思ったらOfficeがなかったので試しに使ってみました。
文法についてはオリジナルではないですが、この辺りを参考にしました。
githubのREADME.mdみたいなファイルが完成したら次に変換をします。
マークダウンの変換で有名なのはPandocですが、今回はPDFだけ別のを使用しました。
環境はMacなのでHomebrewでインストールをしましたが、他のプラットフォームでも可能だと思います。
HTML に変換
Pandoc をインストールします。
brew install pandoc
HTMLに変換する前に適用するCSSファイルを用意します。
今回は公開されている github風のスタイルシートを利用しました。
Github Markdown CSS - for Markdown Editor Preview · GitHub
取ってきたファイルをここでは github.css と表記します。
変換するファイルと同一ディレクトリに置いておきます。
PandocでマークダウンをHTMLに変換します。
pandoc -s README.md -t html5 -c github.css -o README.html
これでHTMLファイルが出力されたと思います。
CSSを使わない場合は '-c github.css' のオプションは必要ありません。
'-t html5' のオプションが無いとHTML4やらXHTMLか何かの宣言になります。
'-s' のオプションを外すとテンプレートとして出力されず、マークダウンで記述したものがそのままHTMLタグに変換されるので、部分的に利用したい場合などで使えます。
'-o' はoutputの o です。
Docx に変換
同様にPandocを使います。
そのまま変換するには以下の通りです。
pandoc README.md -o README.docx
スタイルを適用させたいときはスタイルを設定した.docxファイルを用意します。
用意したファイルを '--reference-docx=' のあとに指定します。
pandoc README.md --reference-docx=style.docx -o README.docx
これでスタイルが適用された.docxファイルが出力されます。
ですが、MacやWindowsやいろんなバージョンなど互換性を考えるとあまり使い勝手がよくなさそう(?
PDF に変換
PandocでもPDFに変換できるのですが、別途TeX系を用意する必要があるようで、さらに日本語周りやら地味に面倒くさそうだったので別の手段を探しました。
今回はnode.jsで動作するmarkdown-pdfを使用します。
インストールはnpmからします。
npm install -g markdown-pdf
どうやらCSSも利用できるらしいので、さっきのスタイルシートを持ってきます。
markdown-pdf README.md -o README.pdf -s github.css
これで出(ry
以上です。
htmlとpdfは結構使えそうですが、docxに関してはちょっとそのまま使うには〜って感じでした。
参考にしたやつ
Qiita - Markdown記法 チートシート - Qiita
Pandoc: markdown を github 風 html に変換する | deadwood
マークダウンからpdfを作るならpandocよりmarkdown-pdfっすね
Pandoc ユーザーズガイド 日本語版 - Japanese Pandoc User's Association