MT下最简单的实现CSS压缩(优化)的办法
大家都知道。 CSS压缩可以给网站访问提速, 这个也是 Google Yahoo 等大网站对于网站优化提出的标注之一。
但是,CSS压缩对于网站开发者来说,也意味着可读性降低,也意味着需要保留两份代码,一份正常的可读性高的,一份压缩的的供网站使用。
对于业余站长,压缩CSS是个可爱又可恨的东西,需要第3方工具来完成。
其实,对于 MT 程序来说,利用一点点模板变通可以实现 CSS的自动压缩。
简单的来说就是利用 MT 模板 Tag 自身的几个全局过滤函数的过滤/替换功能:
strip_linefeeds
:
strip_linefeeds 很好理解,就是把Tag内所有的换行去掉,让他变成一行。 使用办法<$MT:tag strip_linefeeds="1" $>
。strip
:
strip 过滤则是用特定字符替换掉 Tag 内的就空白(1个或者多个连续空格),比如我要把这些空白替换成一个空格则是用<$MT:tag strip=" " $>
。正则方式
regex_replace=["正则表达式匹配部分","要替换成的内容"]
:
这是最强大的功能,我们用它来替换掉原始CSS 的注释部分。 当然为了表达式简单,我只替换/*[注释内容]*/
方式,而不处理//[注释内容]
样式,这个就需要你的原始CSS 的注释必须是/*[注释内容]*/
方式,而不是//[注释内容]
,但是修改所有的//[注释内容]
为/*[注释内容]*/
并不是太繁琐的事情。如果要处理//[注释内容]
方式,必须在strip_linefeeds
之前使用。我的使用办法<$MT:tag regex_replace="/\/\*.+?\*\//g","" $>
。
注意,正则表达式兼容 Perl 正则,但是只识别/../
模式。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 $>)。
参考资料:
Just Enjoy it.
MT的标签功能还是非常强悍的,可以实现很多的功能。你可以把这几个module缓存起来,可以加快生成速度。
是的,可以使用 cache, 不过我没有使用 cache, 而是不必要的文件不是自动重建,而是在需要更新的时候手动重建 :D
包括 CSS /JS 等等。
从没用过MT。。。
Movable Type 基于Perl.国内环境用的很少 :)
现在都是wordpress。。。