0

我正在尝试编写一个 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].

4

2 回答 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 回答