2013-07-20 38 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