Maruku
概要
Markdown Extraの拡張文法と、それとは別に独自の拡張文法を実装した、高機能なMarkdownパーサ。
出力にはXHTMLのほか、LaTeX形式やPDF形式なども選択できる。また、一つのMarkdownテキストファイル(拡張子 .md )を、完全なXHTML文書(DOCTYPE宣言やhead部まで含む)に変換できる機能がある。
基本的な使い方
公式サイトのUsageを参考にまとめています。
ライブラリとして使う
基本的にはBlueCloth?と変わらないが、to_html_documentという新しい変換メソッドがある。
require 'maruku' text = <<MARKDOWN Test Document ============= This is body. MARKDOWN Maruku.new(text).to_html # 通常の変換 Maruku.new(text).to_html_document # 完全なXHTML文書として変換
to_htmlの場合の出力
<h1 id='test_document'>Test Document</h1> <p>This is body.</p>
to_html_documentの場合の出力
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd"> <html xmlns:svg='http://www.w3.org/2000/svg' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'> <head><meta content='application/xhtml+xml;charset=utf-8' http-equiv='Content-type' /><title>Test Document</title></head> <body> <h1 id='test_document'>Test Document</h1> <p>This is body.</p> </body></html>
コマンドラインから使う
次のように打ち込むと、file.mdをfile.htmlに変換する。
$ maruku file.md
また、次のように打ち込むと、pdflatexコマンドを使ってLaTeX→PDFに変換してから出力する(file.texとfile.pdfができる)。
$ maruku --pdf file.md
Maruku独自拡張
(執筆者募集)
問題点
見出しに日本語などを使うと、idがXMLの仕様に違反した値になる
日本語見出し ============
<h2 id='日本語見出し'>日本語見出し</h2>
バージョン0.5.8で確認。
コマンドラインからの実行で、日本語を含むファイルを正常に変換できない
バージョン0.5.8で確認。marukuコマンドの実行時には文字コードの指定ができない(文字コードを指定するためのオプションがない)ため、マルチバイト文字を含んでいると文字化けを起こす。
行の空いていない入れ子リストを解釈しない
次のようなリストは、BlueCloth?では入れ子リストにしてくれるのに対し、Maruku0.5.8では入れ子にならない。
* Item-1 * Item-2 * Item-2-1 * Item-3
次のように書くと、Marukuでも入れ子リストになる。
* Item-1 * Item-2 * Item-2-1 * Item-3
とはいえ、入れ子リストはMarkdown Syntaxで仕様として明記されてはいる書き方ではないので、これを問題点と見るべきかどうかは微妙なところ。
インライン要素としてのHTMLタグを解釈しない
* <em>強調したい文字列</em>
これはBlueClothにおいては強調と解釈されるが、Marukuではそうならない。
最終更新時間:2009年01月27日 16時41分35秒