[模板]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.