Markdownでドキュメントを書きたい。
自分用のメモとかドキュメントとかつくるのにSphinxを使っていたんだけど、どうもなかなかreStructuredTextにこなれないし、自分用にガッツリ勉強する気にもなれない。そのうちGithubのGistを使うようになってきて、Markdown使いたいなって思うようになった。というかGistに張ったものをそのまま使ったり、書いたものをそのままGistに張ったりしたい。
というわけで、Markdownをhtmlに変換できるようなのを探して"markdown html 変換"で検索した所、pandocというのが出てきた。このpandoc、MarkdownをreStructuredTextに変換できるとも書いてあって、じゃあこれを使おうって思った。
とりあえずインストール。Haskellでつくられたツールだそうで、Haskellのパッケージマネージャで入れられるそうだ。
参考 http://qiita.com/sky_y/items/80bcd0f353ef5b8980ee
(※pandoc単体のインストーラもあるっぽい)
といってもHaskellの環境がないので、まずはHaskellの環境をインストールした。
$brew install haskell-platform続いてpandocをインストール。たしかこれで動いたはず。
$ cabal update $ cabal install pandoc
インストールできたので、適当に書いて出力してみた。
sample.mdというファイルで作成してsample.htmlというファイルに出力。
# Sample ## Gohan 1. Onigiri 2. Katsudon 3. Karaage ``` $echo "Onigiri Mogu Mogu" ``` --- ``` $echo "Mecha Mecha Oishi!" ```
ついで出力。
$ pandoc sample.md -s -o sample.html
おおっ、ちゃんと出力されてるすげー!。すげーけど味気ない。
味気ないのでCSS当てる事にした。面倒くさいのでGist風のCSSを探してきて拝借。 https://gist.github.com/andyferra/2554919
自分でタグ書くの面倒だからRubyで挿入できるようにした。書いてて、なんだかすごい回りくどい事しているような気がしたけど気にしない。Rubyの勉強したと思う事にした。
#!/usr/bin/env/ruby ##https://gist.github.com/andyferra/2554919 if __FILE__ == $0 usage= """ usage ------------------- giss [filename]""" css = """ """ curdir = Dir::pwd appdir = File.dirname($0) if ARGV.length == 0 print usage exit end filename = ARGV[0] file = File.open(filename) do |f| f.read end if file.index("gist.css").nil? n_head = file.index("") file.insert((n_head + 6),("\n" + css)) open(filename, "w") do |f| f.write file end end unless File.exist?("gist.css") puts `cp #{appdir}/gist.css #{curdir}/gist.css` end end
そうして出てきたのがこちら。
満足。pandocとても良いですね。もっと他の方法もありそうな気がするけどとりあえずこれで。