記述が楽で, CSSを適当すれば見た目的にもいい感じのメモやノートが作れるのでMarkdownを好んでよく使うんですが,

共有するときなどに, HTMLやPDFにさくっと変換したいと感じることが多々あるので, 変換ツールを取得してスクリプト化しました.

Markdownとは

端的に言えば, HTMLを超簡易的に書ける記法です.

スクリーンショット

こんな感じで簡単に構造化された文章を書くことができます.

具体的な記法については触れませんが, 僕の場合はこのブログも Markdown で書いていますし, それ以外にもメモやドキュメント作成など用途の幅は広いです.

準備

Python3系が必要なので, 無い場合は 公式ページ よりインストール.

まずは, Homebrewよりpandocをインストールします.

$ brew install pandoc

また, lualatex-ja もインストールしておきます.

プレーンなHTMLでは味気がないので, githubのデザインに寄せた github.css を使わせて頂き(MIT Licenseにて配布されています),

pandocでテンプレートとして扱えるHTMLに変換し github.html として使います.

他のcssを用いたり, 自分でスタイルを設定したい場合は,

$ pandoc -D > hoge.html

とすれば最小構成のテンプレートが生成されます.

中身は基本htmlなので, 最低限の知識があればデザインを変更できるはずです.

スクリプト化

Markdown を HTML形式に変換する md2html と, PDF形式に変換する md2pdf を書いていきます.

MarkdownからHTMLを生成

#!/bin/sh

function md2html () {
    # Sample Usage: md2html sample.md
    MD=$1
    HTML=${1/.md/.html}
    touch $HTML
    pandoc -f markdown $MD -t html5 --template=/path/to/github.html --metadata pagetitle="initial title" -o $HTML
    CURRENT_PATH=`pwd`
    echo $CURRENT_PATH"/"$HTML" に書き出したよ"
}

MarkdownからPDFを生成

#!/bin/sh

md2pdf () {
    # Sample Usage: md2pdf sample.md
    MD=$1
    PDF=${1/.md/.pdf}
    pandoc $MD -o $PDF -V documentclass=ltjarticle --pdf-engine=lualatex
    CURRENT_PATH=`pwd`
    echo "OPEN by 'open "$CURRENT_PATH"/"$PDF"'"
}
$ md2html test.md
/path/to/test.html に書き出したよ
$ md2pdf test.md
OPEN by 'open /path/to/test.pdf'

という感じで手軽に変換できます.