我有一些用户提供的内容,我想要呈现。
显然内容应该被转义,rails默认会这样做。但是,我还想解析文本,以便将URL显示为链接。
有一个auto_link
帮助器可以做到这一点。但无论我做什么顺序,我都无法得到理想的结果。
记录内容:
content
=> "<img src=\"foo\" />\\r\\n\\r\\nhttp://google.com"
如果这是转义的,因为网址中的斜杠被转义,auto_link将无效:
Rack::Utils.escape_html(content)
=> "<img src="foo" />\\r\\n\\r\\nhttp://google.com"
如果我首先使用auto_link,那么链接将被转义。此外,auto_link会删除不需要的内容而不是转义。如果输入中存在脚本标记,我希望它不会被删除。
auto_link(content)
=> "<img src=\"foo\" />\\r\\n\\r\\n<a href=\"http://google.com\">http://google.com</a>"
知道如何获得所需的输出吗?
感谢您的帮助。
答案 0 :(得分:1)
您可以使用content.gsub!(/\\./, "")
删除所有转义的空白字符。然后,您就可以使用auto_link
。
答案 1 :(得分:0)
我最终使用的解决方案是放弃auto_link,让Rack逃离我的内容服务器端,然后使用https://github.com/gabrielizaias/urlToLink
解析客户端文本中的链接$('p').urlToLink();
答案 2 :(得分:0)
我成功了:
auto_link(h(content))