2012-09-11 74 views
3

我用鬍子/車把模板。文本/ HTML模板壓縮HTML文件

如:

<script id="contact-detail-template" type="text/html"> 
    <div>... content to be compressed </div> 
</script> 

我期待壓縮/再壓縮在最好的壓縮模板我的HTML文件。

的YUICompressor,因爲他們認爲這是腳本,並給了我腳本錯誤關閉不起作用。即使它認爲它是一個腳本

HTMLCompressor不去碰它們。

如何運行如下類型爲text/html的腳本標記的內容? 我可以使用圖書館嗎? 如果不是,是sed還是egrep更好的方法?你有sed/egrep語法刪除空行(只有空格或製表符),刪除所有標籤,修剪多餘的空格?

謝謝。

回答

4

sed -e "s/^[ \t]*//g" -e "/^$/d" yourfile這會從一開始去除所有多餘的空格和製表符,並刪除所有空行。

sed -e "s/^[ \t]*//g" -e ":a;N;$!ba;s/\n//g" yourfile這會從一開始去除所有多餘的空格和製表符,並連接所有代碼。

很抱歉,如果我錯過了什麼。

+0

如果您不是在Windows中,從雙引號的變化,爲單引號。 – ghaschel

+1

謝謝。它很近,但不會刪除標籤。經過一番調查後,我發現那不行。你應該做一個ctrl + v,然後點擊命令行上的一個標籤。放入腳本,你應該選擇一個標籤而不是\ t。否則它工作。謝謝。 – cloudpre

3

嘗試使用Pretty Diff來縮小這種代碼。如果沒有MIME類型或者類型是各種JavaScript類型之一,它將只假定script標籤內的內容是JavaScript。它也足夠聰明,可以知道哪些空白空間可以刪除而不會破壞內容輸出或稍後對代碼進行遞歸美化。

+0

謝謝。該工具是有希望的,但缺少一個簡單的命令狀工具 - minify.sh等其他工具,如htmlcompressor,唯是使用相當簡單。如果我們在node.js應用程序中使用它,'Pretty diff'很簡單,但如果在普通應用程序中使用,則非常複雜。你必須構建一個maven類型的腳本,然後執行。如果刪除製表符/空格是我的目的,我更喜歡sed這個漂亮的差異。 – cloudpre

+0

它在Windows中使用WSH提供本機命令行支持。請參閱http://prettydiff.com/prettydiff.wsf作爲WSH的api。我目前正在進行擴展,以允許目錄和子目錄比較與單純的文件比較相反。對於其他系統,我使用文件api.js提供了對Node.js的一些支持。 Node.js的支持有點過時,我打算很快更新。 – austincheney

+0

不幸的是,我使用的是mac。我建議你添加一個.jar,如果可能的話可以作爲.sh運行。如果沒有,自定義的.sh對於unix用戶會有好處。我喜歡這個庫,並期待在訪問.sh文件時使用它。 – cloudpre

2

使用sed ':a;N;$!ba;s/>\s*</></g' file,它使你刪除空格和換行其中不需要。不像ghaschel例子,因爲它保留了<pre><p>標籤這個不會刪除那些有用的空格在該行的開頭。

這是有用的,你可以><這是的常用方法放大一個html文件之間移除空格。本實施例中也可以使用像原子飼料並且例如RSS頻道一個XML文件

我個人使用這個作爲我的site generator中的管道,這可以減少正常的文件大小和can be use in conjunction with gzip