昔書いた CGI にちょっと手を入れたついでに、ドキュメントを Markdown に書き直そうと思って調べてみたら、Ruby では RDiscount ってのがよさそうだったので試してみた。今日はそのメモ。
拡張ライブラリが含まれているというのでちょっと心配だったけど、インストールはあっさりすんだ。
^o^ > gem install rdiscount Fetching: rdiscount-2.1.7.1.gem (100%) Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... Successfully installed rdiscount-2.1.7.1 Parsing documentation for rdiscount-2.1.7.1 unable to convert "\x90" from ASCII-8BIT to UTF-8 for lib/rdiscount.so, skipping Installing ri documentation for rdiscount-2.1.7.1 1 gem installed
Markdown の例はこんな感じ。記法についてはググればいくらでもページが見つかるので割愛。
見出し1 ======== 見出し2 -------- ここは本文。 ### 見出し3 見出し3以上は # を行頭につける。見出し6までいけるみたい。 ### 番号なしリスト 行頭に * か - で番号なしのリストになる。 - リスト1 - リスト2 - リスト3 ### 番号つきリスト 番号つきリストは行頭に 1. というふうに番号をつける。 1. リスト1 2. リスト2 3. リスト3 ---- 3つ以上の - で水平線。
これを HTML に変換するには、rdiscount コマンドを使えばいい。標準出力に吐き出すので、適当なファイルにリダイレクトしてやる。
^o^ > rdiscount example.md > example.html
Ruby のスクリプト内で使うには、RDiscount クラスのインスタンスを作って to_html メソッドで変換する。
require 'rdiscount' markdown = RDiscount.new(File.open(ARGV.shift, "r"){|f| f.read}) print markdown.to_html
ま、とりあえず使うのはこんなところ。