[Document & Workflow] Pandoc: markdown を github 風 html に変換する

CSS を設定して書式を github 風にします。

[markdown]
先日こんなことをしたのですが、`pandoc` でもできるように設定しておこうと調べました。

> * [Grunt: markdown を pdf に変換する | deadwood](https://www.d-wood.com/blog/2014/09/03_6775.html)

## デフォルト

通常の変換はこんな書き方です。

“`prettyprinted
% pandoc -s test.md -o test.html
“`

## github 風 css を適用する

書式がいまいちなので他の方法を探したところ、CSS を指定できるとのこと。

> * [pandocでmarkdownからgithub風シンタックスハイライトされたhtml生成(ついでに数式) – だいたいよくわからないブログ( ´_ゝ`)](http://matsu-chara.hatenablog.com/entry/2013/11/17/114859)

こちらで公開されている方がいるので、ありがたく頂戴します。
カレントディレクトリに github.css という名前で保存します。

> * [Github Markdown CSS – for Markdown Editor Preview](https://gist.github.com/andyferra/2554919)

オプション `-c` 付きで変換すると github.css が参照された html が作成できました。

“`prettyprinted
% pandoc -s test.md -t html5 -c github.css -o test.html
“`

ソースを見ると、こんな形で参照されています。

“`html:test.html “`

## ユーザデータディレクトリを利用する

このままだと CSS ファイルを別途管理しなければならないので、グローバルに参照できるディレクトリにファイルを移動したいです。
ユーザデータディレクトリという仕組みがあり、以下のコマンドで場所が分かります。

“`prettyprinted
% pandoc –version
pandoc 1.12.3
:
Default user data directory: /Users/****/.pandoc
:
“`

さっそくディレクトリを作成して CSS ファイルを移動します。

“`prettyprinted
% cd
% mkdir .pandoc
% mv github.css .pandoc
“`

これでほんとうはユーザデータディレクトリを走査してくれるはずなんですがうまくいかず。。。

“`prettyprinted
% pandoc -s test.md -t html5 -c github.css -o test.html
“`

保留。。。

## Custom Template を作成する

カスタムテンプレートファイルをユーザデータディレクトリに置くと、システムよりも優先的に探してくれるそうなので、独自のテンプレートを作成します。
下記のコマンドで、ディフォルトテンプレートを元にひな型を作成できます。

> * [Pandocメモ – jou4のブログ](http://jou4.hateblo.jp/entry/2013/03/04/215020)

“`prettyprinted
% pandoc -D html5 > github.html
“`

今回はひな型に、以下の CSS ファイルへのリンクを追加します。

“`prettyprinted “`

このテンプレートを .pandoc/templates/ 以下に配置します。

“`prettyprinted
% mkdir .pandoc/templates/
% mv github.html .pandoc/templates/
“`

以下のオプションが有効になりました。

“`prettyprinted
% pandoc -s test.md –template=github -o test.html
“`

## Custom Template をディフォルトに指定する

ちなみにこのファイル名を default.html へ変更すると、HTMLテンプレートのディフォルトに変わります。

“`prettyprinted
% mv .pandoc/templates/github.html .pandoc/templates/default.html
% pandoc -s test.md -o test.html
“`

このあたりの命名規則に従うようです。

> * [pandoc/data at master · jgm/pandoc](https://github.com/jgm/pandoc/tree/master/data)

## 補遺

ユーザーガイドのすばらしい日本語訳があります。
いろいろあるので使うところだけ拾い読みしました。

> * [Pandoc ユーザーズガイド 日本語版 – Japanese Pandoc User’s Association](http://sky-y.github.io/site-pandoc-jp/users-guide/)

深い。

> * [HTML – 多様なフォーマットに対応!ドキュメント変換ツールPandocを知ろう – Qiita](http://qiita.com/sky_y/items/80bcd0f353ef5b8980ee)
> * [Pandoc – プログラマの文書作成術:Markdown, LaTeXなどの文書からWord文書を生成する – Qiita](http://qiita.com/sky_y/items/aab3f93a32a711a54e74)

以前の関連記事。

> * [Pandoc: HTML を Markdown に変換する | deadwood](https://www.d-wood.com/blog/2014/04/10_6028.html)
[/markdown]