From: m_seki@... Date: 2002-11-29T22:31:05+09:00 Subject: [ruby-list:36631] Re: RWikiのVerbatimBlock拡張について 咳といいます。 > 追加しようと思っている処理は、 > > 「VerbatimBlockの中といえども、(())等のRWiki指定は > リンクに変換したい」 > > というものです。 > [ruby-talk:11929]とrd2rwiki-lib.rbのソースから、 > rd2rwiki-ext.rbにext_VerbatimBlock_XXXというメソッドを追加 > すればよさそうだ、というところまではわかったのですが、 > そのメソッドの中で、どうすれば((...))の変換を行えばよいのか > よくわからないのです。 > パーシング処理を独自に行うところから書くべきなのでしょうか? VerbatimBlockに渡されるのはただのStringなので自分で((<...>))を探す コードを書く必要があります。 見つけたら rwd2rwiki-lib の最後の方の処理をまねをしてリンクを 書けばよいと思います。 各行をRWikiの参照と見なしてリンクを置くコードを書いてみました。 どうやら動くようですが、正しいか自信がありません。 --------- require 'rwiki/rwiki' module RD class RD2RWikiVisitor def ext_VerbatimBlock_HOGE(content) str = "" content.each do |x| if /\s*(.*)\s*/ =~ x name = $1 str << default_ref_ext(name, meta_char_escape(name)) end end str end end end ----------- RDで次のように記述すると # HOGE RWiki2 top 以下の通り変換されます。 RWiki2top