私が書いた小さなマークアップ言語を HTML に変換する Ruby スクリプトを作成しようとしていますが、リンクを解析する方法がわかりません。基本的には BBCode の縮小版なので、例えば が入ったら[i]{text}[/i]
を使います[i]{text}[/i].gsub('[i]','<i>').gsub('[/i]','</i>'
。ただし、リンクを解析する方法がわかりません。どのように私はに変わり[url=website.com]site[/url]
ます<a href="website.com">site</a>
か? 異なるタグがいくつかあるため、既製の BBCode パーサーは使用していません[img][/img]
。
2 に答える
0
正規表現を使用することでkchに同意しますが、これまでのようにgsub()を使用して頭を包み込みたい場合は...
s = "[url=website.com]site[/url]"
s2 = s.gsub('[url=','<a href="').gsub('[/url]','</a>').gsub(']','">')
于 2012-05-29T20:37:53.870 に答える
0
非常に素朴に:
s.gsub(/\[url=(.*?)\](.*?)\[\/url\]/) { "<a href='#{$1}'>#{$2}</a>" }
HTML インジェクションは非常に簡単です。ここでのポイント(適切なパーサーを作成する) は、あなたがしていることにも当てはまります。
于 2012-05-29T20:19:59.110 に答える