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

$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とても良いですね。もっと他の方法もありそうな気がするけどとりあえずこれで。

0 件のコメント:

コメントを投稿