我的许多用户都在输入纯 URL,而不是使用 Textile 格式来创建链接。我希望 Textile 只是使 URL 可链接到 URL。我真的不需要担心 XSS 或任何恶意,因为它是一个只有极少数用户的内部网络。实现此功能的最佳方法是什么?
我正在使用 RedCloth 的 Ruby 版本。
这个怎么样?
def urls2links( s )
s.gsub(
/([^:])((https?|ftp)\:\/\/[^\s)'"]+[^.,)\s])(. |, |[\s]|\) | )/,
'\1<a href="\2" target="_blank">\2</a>\4')
end
def textile2html( s )
textilize(urls2links(s)).html_safe
end
使用此文本对其进行测试:
Plain urls converted to external links by my textile2html helper:
* http://www.google.com
* http://www.google.com,
* http://www.google.com.
我不确定 RedCloth 是否可以将 URL 转换为可点击的链接,但是有一个名为auto_link的 Rails 文本助手可以。