2013年8月28日水曜日

Markdownでドキュメントを書きたい。


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の環境をインストールした。

1$brew install haskell-platform
続いてpandocをインストール。たしかこれで動いたはず。
1$ cabal update
2$ cabal install pandoc

インストールできたので、適当に書いて出力してみた。
sample.mdというファイルで作成してsample.htmlというファイルに出力。
01# Sample
02 
03## Gohan
041. Onigiri
052. Katsudon
063. Karaage
07 
08```
09$echo "Onigiri Mogu Mogu"
10```
11---
12 
13```
14$echo "Mecha Mecha Oishi!"
15```

ついで出力。
1$ pandoc sample.md -s -o sample.html


おおっ、ちゃんと出力されてるすげー!。すげーけど味気ない。
味気ないのでCSS当てる事にした。面倒くさいのでGist風のCSSを探してきて拝借。 https://gist.github.com/andyferra/2554919

自分でタグ書くの面倒だからRubyで挿入できるようにした。書いてて、なんだかすごい回りくどい事しているような気がしたけど気にしない。Rubyの勉強したと思う事にした。

01#!/usr/bin/env/ruby
03if __FILE__ == $0
04  usage=  """
05usage
06-------------------
07giss [filename]"""
08  
09  css = """ \"stylesheet\"" href="\"gist.css\"" type="\"text/css\"">"""
10  curdir = Dir::pwd
11  appdir = File.dirname($0)
12  if ARGV.length == 0
13    print usage
14    exit
15  end
16  
17  filename = ARGV[0]
18  file = File.open(filename) do |f|
19    f.read
20  end
21  if file.index("gist.css").nil?
22    n_head = file.index("")
23    file.insert((n_head + 6),("\n" + css))
24    open(filename, "w") do
25      |f| f.write file
26    end
27  end
28  unless File.exist?("gist.css")
29    puts `cp #{appdir}/gist.css #{curdir}/gist.css`
30  end
31end

そうして出てきたのがこちら。


満足。pandocとても良いですね。もっと他の方法もありそうな気がするけどとりあえずこれで。

0 件のコメント:

コメントを投稿