@m_seki の

I like ruby tooから引っ越し

Text::Hatenaのつづき

Text::HatenaにAutoLinkを追加する実験をしました。(作らなくてもよかったんだけどやってみたかった。)
こんな感じ。(imaco_id.rb)

require 'text/hatena/auto_link'
require 'text/hatena/auto_link/scheme'

class ImacoID < Text::Hatena::AutoLink::Scheme
  @@pattern = /?[?(imaco:(?w+)(?::(detail|image))?)?]?/i

  def patterns
    [@@pattern]
  end
  
  def parse(text, opt = {})
    return if @@pattern !~ text
    content, name, type = $1, $2, $3 || ''
    sprintf('<a href="%s"%s>%s</a>',
            name, @a_target_string, name)
  end
end

Text::Hatena::AutoLink::SCHEMES['imaco'] = 'ImacoID'

auto_link.rbのAutoLink#initでrequireしてからget_classするようになっていますが、クラスの取得に失敗したらrequireするのはどうでしょうか?

それから、スーパーpre記法(シンタックスハイライト)のサポートの予定はあるでしょうか?