【发布时间】:2013-12-18 21:56:59
【问题描述】:
我爱Sanitize。这是一个了不起的实用程序。我唯一遇到的问题是,它需要永远准备一个开发环境,因为它使用Nokogiri,这对编译时间来说是一个痛苦。是否有任何程序可以使用 Nokogiri 执行 Sanitize 的功能(如果只是温和的功能)?这将成倍增加!
【问题讨论】:
-
为什么不以不同的方式准备 Nokogiri?
-
因为 Nokogiri 包装了 libxml2,它是 XML 的引用实现,除了你知道...
-
取消投票,因为这是一个真正的问题,有可能得到很好的答案。蹩脚的答案是使用 REXML 及其 XPath 重写 Sanitize 的核心。可以遍历 HTML,将每个标签名称与白名单进行比较,并杀死不在白名单上的每个标签。这会很慢;如果这成为问题,则安装 VirtualBox,在其上安装 Ubuntu Saucy Salamander,在其上安装 RVM,然后让 Nokogiri 咆哮。
-
如果我理解正确,您有一个命令行 ruby 脚本来执行清理工作。如果是这样,为什么不将其包装在一个简单的 Sinatra 等服务中并发布您的请求?
-
如果这是一个严重的痛点,您可以尝试准备一个Vagrant box,其中所有内容都已经为您编译好了。
标签: ruby-on-rails ruby sanitize