[模板]MT下最簡單的實現CSS壓縮的辦法

MT下最簡單的實現CSS壓縮(優化)的辦法

大家都知道。 CSS壓縮可以給網站訪問提速, 這個也是 Google Yahoo 等大網站對於網站優化提出的標注之一。
但是,CSS壓縮對於網站開發者來說,也意味著可讀性降低,也意味著需要保留兩份代碼,一份正常的可讀性高的,一份壓縮的的供網站使用。
對於業餘站長,壓縮CSS是個可愛又可恨的東西,需要第3方工具來完成。
其實,對於 MT 程序來說,利用一點點模板變通可以實現 CSS的自動壓縮。
簡單的來說就是利用 MT 模板 Tag 自身的幾個全局過濾函數的過濾/替換功能:

  1. strip_linefeeds
    strip_linefeeds 很好理解,就是把Tag內所有的換行去掉,讓他變成一行。 使用辦法 <$MT:tag strip_linefeeds="1" $>

  2. strip
    strip 過濾則是用特定字符替換掉 Tag 內的就空白(1個或者多個連續空格),比如我要把這些空白替換成一個空格則是用 <$MT:tag strip=" " $>

  3. 正則方式regex_replace=["正則表達式匹配部分","要替換成的內容"]
    這是最強大的功能,我們用它來替換掉原始CSS 的註釋部分。 當然為了表達式簡單,我只替換/*[註釋內容]*/ 方式,而不處理 //[註釋內容] 樣式,這個就需要你的原始CSS 的註釋必須是 /*[註釋內容]*/ 方式,而不是 //[註釋內容],但是修改所有的 //[註釋內容]/*[註釋內容]*/ 並不是太繁瑣的事情。如果要處理 //[註釋內容]方式,必須在 strip_linefeeds 之前使用。我的使用辦法 <$MT:tag regex_replace="/\/\*.+?\*\//g","" $>
    注意,正則表達式兼容 Perl 正則,但是只識別 /../模式。

  4. trim
    trim 很好理解,就是把Tag內開頭和結尾的空白去掉。 使用辦法 <$MT:tag trim="1" $>

說道這裡就簡單了。 附上我的 CSS 模板 如下:

code<$mt:Include module="reset.css" strip_linefeeds="1" regex_replace="/\/\*.+?\*\//g",""   strip=" " trim="1"$>
<$mt:Include module="screen.css" strip_linefeeds="1" regex_replace="/\/\*.+?\*\//g",""   strip=" " trim="1"$>
<$mt:Include module="media-queries-base.css" strip_linefeeds="1" regex_replace="/\/\*.+?\*\//g",""   strip=" " trim="1"$>

BTW, 這個過濾參數可以幾乎使用與所有的 <$MT:Tag $> ,比如最常用的 <$mtT:Var $> (<$mt:SetVarBlock $>)。

參考資料:

  1. Template Tag Modifiers

Just Enjoy it.