2013-07-20 37 views
0

尝试使用Deface库从HTML.ERB文件中删除注释标记。Deface和评论标签?

任何想法,这将是以下

<!-- Get "Open Sans" font from Google --> 正确的选择?

试图以匹配

Deface::Override.new(:virtual_path => 'spree/admin/shared/_head', 
        :name => 'remove-googleapis', 
        :remove => '!--') # this thows an exception 

更新(例外说明):

Nokogiri::CSS::SyntaxError 
unexpected '!' after '' 
+0

当您尝试使用Deface时发生了什么?你有一个例外,但你不说它是什么。 –

回答

1

污损使用引入nokogiri,它使用CSS选择(与jQuery扩展)。在撰写本文时,无法使用这些选择器选择注释节点。在寻找使用jQuery选择注释标记的方法时,有几个问题,其中大多数指向comments plugin。所以通过Deface宝石可能无法做到这一点。

如果您确实想要删除评论节点,可以使用sanitize gem或使用Nokogiriwith xpath selectors来查看。

从工程POV来看,这可能是不值得的。你为什么试图删除一个无害的评论标签呢?

+0

感谢您的信息。我一直担心Deface库没有办法。虽然评论是“无害的”,但让他们觉得很混乱。当我更新erb代码的几个块时,旧评论依然存在,并与我的新评论产生不一致的混合。因此,如果有人打开页面的源代码,则会发现仅与当前代码不匹配的注释。更不用说冗余数量的代码将在同级之间传输。 – Torimus

+0

我用另一个选择更新了我的答案。如果您认为它适合您,请接受我的回答。 –

+0

如何将xpath选择器应用于Deface?尝试通过lambda proc''':remove => - >(s){Nokogiri :: HTML(s).xpath('// comment()')}'''但注释标记没有得到除去。 – Torimus