【发布时间】:2014-05-15 04:40:59
【问题描述】:
我在 Rails 中有一个博客,我想在其中规范化内容部分中的外部链接,例如跟踪点击、断开的链接等。
我已经开始创建自己的标记类型,我在其中使用以下内容:
block_code = [[LINK_A##URL:http://www.exampleA.com##ANCHOR:A]]
block_code = [[LINK_B##URL:http://www.exampleB.com##ANCHOR:B]]
这些字符串/标记的解释非常容易(因为我自己指定了它们)以便提取有关它是LINK_A 还是LINK_B 的信息以及URL 值。我用一个函数来做这个:
render_markup(block_code) #=> "<a href='http://www.exampleA.com'>A</a>"
我现在需要做的是拥有一个迭代文本的函数,当它找到我的 block_codes 时,将它们替换为 render_markup() 的结果。
example_content = "Today was a really nice day when I went to the [[LINK_A##URL:http://www.thepark.com##ANCHOR:The park]] where I had a [[LINK_B##URL:http://www.swim.com##ANCHOR:swim]] and this was very nice"
所以当我这样做时:
scan_and_replace(example_content)
它创建:
"Today was a really nice day when I went to the <a href='http://www.thepark.com'>the park</a> where I had a <a href='http://swim.com'>swim</a> and this was very nice."
每当它在文本中遇到我的代码块时。
所以,我需要帮助的是查找和替换这些代码块,即创建 scan_and_replace() 函数。我不需要帮助将我的代码块渲染成 HTML,这已经在工作了。
如果这太难了,或者如果你发现这个方法真的很糟糕(并且知道解决同样问题的更好方法),请告诉我!
【问题讨论】:
标签: html ruby-on-rails string