2008年7月9日

typo の markdown を ecto3 で扱う方法

typo と ecto を組み合わせるとき、 ecto 内の markdown パーサが性能が悪いので、プリビューが上手く表示できないことがある。

Markdown Extra for ecto」を使えば、対処が可能らしいが、ecto 3.0b49 では上手くいかなかった。 パッチの内容は、Perlスクリプトの markdown -> html コンバータを、PHP ベースの変えるものらしい。

ふーむ。

typo は Ruby の RedCloth モジュールの markdown パーサを利用してるので、こっちを使う物を変えれば、上手くいきそうである。

RedCloth インストール

MacOSX 10.5 では、rubygems が使えるので、

# sudo gem install RedCloth

で完了

ecto の markdown フォーマッタの変更

ファイル ecto.app/Contents/PlugIns/Markdown.formatter/Contents/Resources/markdown.perl を名前を変えてバックアップを取り、 次のように変える。

#!/usr/bin/ruby

require 'rubygems'
require 'RedCloth'

text = ""
readlines.each { |line|
  line.gsub!(%r{<typo:code>},"<pre><code>")
  line.gsub!(%r{</typo:code>},"</code></pre>")
  text += line
}

doc = RedCloth.new(text)
puts doc.to_html(:markdown)

めでたく、プリビューが上手く表示されるようになりましたっす。

Writing your own formatter」 に従えば、独自のフォーマッタが結構簡単に作れるらしいので、、、余力があれば遊んでみるのも良いかも。

0 件のコメント: