折腾Typecho插件Minify

发布于 2017-06-26 作者 [重庆SEO]

有个使用typecho的项目,需要吧HTML源码压缩一下!我的博客现在的Minify代码部分可以复用。

看了一下Typecho手册的插件开发说明,也Google了一下Demo, 捣鼓成功

项目GITHUB地址 https://github.com/imnoco/Minify_for_Typecho/

把文件放在 /usr/plugins/Minify/ 目录下即可,功能仅仅就是启用和禁用!

代码还算是轻量,针对绝大多数情况的HTML压缩可用,为了偷懒,对于可能的特殊需求搞个自定义设置好像也暂无必要,估计知道要自定义的人,也都自己捣鼓了!

Minify核心部分代码如下

public static function minify($buffer){

    $content=$buffer;

    // 1.标签前后留空格是为了a标签前后的文字不连在一起,但会存在<> text </>
    // 2.不针直接对多余空格缩减,避免对<pre><code>等特殊标签中的内容影响
    $pattern = array(
       "/\s+</",
       "/>\s+/",
       "/>\s+</",
        //"/\s+/",
       "/ \"/",
       "/<p><br[^>]*><\/p>/i"
    );
    $replace = array (
       " <",
       ">",
       "><",
        //"",
       "\"",
       ""
    );
    $content = preg_replace($pattern, $replace, $content);

    // 去除注释
    $content = preg_replace("/<!--[^\!]+-->/i","", $content);

    // 去除schema
    $content = preg_replace("/\sitem\w+\s/i","", $content);
    $content = preg_replace("/\sitem\w+\=[\"\'][^\"\']+[\"\']/i","", $content);

    return $content;
}

参考与扩展阅读

第一个插件Hello World