折腾Typecho插件Minify

发布于 分类 Typecho

更新于 2020-10-08

相对于服务器安装minify模块,对我而言,HTML页面压缩使用PHP版的minify定制型强,所以灵活性更高一些。

有个使用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

-- The End --

本文标题: 折腾Typecho插件Minify

本文地址: https://seonoco.com/blog/minify-for-typecho

本页面显示内容已针对移动端进行优化,点击查看完整版本