Foo")) 会破坏纺织品
textilize(html_escape("Foo"))
可以工作,但打破各种纺织品功能,如链接(写得像"Linkname":http://www.wheretogo.com/
),因为引号将转化为"
纺织品,因此不再被纺织品检测到.
sanitize
没有做得更好.
有关那个的任何建议吗?我宁愿不使用Tidy来解决这个问题.提前致谢.
对于那些遇到同样问题的人:如果你使用RedCloth gem,你可以定义自己的方法(在你的一个助手中).
def safe_textilize( s ) if s && s.respond_to?(:to_s) doc = RedCloth.new( s.to_s ) doc.filter_html = true doc.to_html end end
摘自文档:
用于设置安全限制的访问器.
如果您在公共场所(例如Wiki)中使用RedCloth进行格式化,那么这是一件好事,您不希望用户滥用HTML来处理不良内容.
如果
filter_html
设置,则不会转义未由Textile处理器创建的HTML.或者,如果sanitize_html
设置,HTML可以通过Textile处理器,但将删除未经授权的标签和属性.