なぜだか知らないけどたくさんある。 Markup processors in The Ruby Toolbox RDiscountとBlueClothが定番で、Redcarpet(GitHub-Markupで内部的に使われているもの)が元気なニューフェイスといったところか。 違いは速度と拡張記法のサポート具合なのかな。 Markdownはシンプルだけどその分できることは限られているので独自拡張のニーズや実装がいくつもあるようだ。 拡張自体はどこかに仕様があるのか、それとも各ライブラリが勝手にやっているのかちょっと追いかけられていない。 気に入った拡張記法をサポートしているかどうかが選択のポイントか。 速度は速いに越したことはないが、個人ユースではそんなに気にする必要はないように思う。 BlueCloth BlueClothが古くからあるものなので、後発のものもBlueCloth互換のAPI
指針 パーサの構築 パーサのメインソースはparse.yである。*.yだからyaccの入力で、 ここからparse.cが生成される。 また他にはlex.cという思わせぶりな名前のファイルがあるのだが、スキャナ が入っているわけではない。これはgperfというツールが生成したファイルで、 予約語のハッシュテーブルが定義されている。その入力ファイルはkeywordsだ。 lex.cはparse.cに#includeして使われる。 中身について説明するのはその場にならないと難しいので後にまわそう。 まとめるとパーサの構築手順は図1のようになる。 Windowsで生きている人のために説明するとmvはファイルを移動する コマンドである。ccはもちろんCコンパイラでcppは Cのプリプロセッサだ。 図1: パーサの構築手順 parse.yの腑分け 続いてparse.yを眺めてみよう。 おおざっぱに言う
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く