我正在尝试编写一个 ruby 脚本来将我编写的一种小型标记语言转换为 HTML,但我不知道如何解析链接。它基本上是 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]
.
问问题
127 次
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 回答