HTMLMinifier是一个高度可配置的、经过良好测试的、基于javascript的HTML缩小器。参见相应的博客文章,了解它的工作原理、每个选项的描述、测试结果和结论。在线测试套件。还可以看到相应的Ruby包装器和节点。js, Grunt插件,Gulp模块,Koa中间件包装和Express中间件包装。对于类似lint的功能,请查看HTMLLint。

  与其他解决方案相比,HTMLMinifier是如何与其他的解决方案相比较的呢? HTMLMinifier(第一个结果是在谷歌搜索“HTMLMinifier”)和htmlcompressor.com和最小化?

Site Original size (KB) HTMLMinifier minimize Will Peavy htmlcompressor.com
Google 46 43 46 48 46
HTMLMinifier 133 104 112 116 111
New York Times 214 145 163 162 152
BBC 237 194 229 235 222
Stack Overflow 248 195 204 212 201
Bootstrap CSS 272 260 269 229 269
Twitter 348 260 313 345 313
Amazon 405 349 390 403 n/a
Wikipedia 471 440 456 471 455
NBC 646 613 642 646 n/a
Eloquent Javascript 870 815 840 864 n/a
ES6 table 4580 3898 4333 n/a n/a
ES6 draft 5720 5103 5253 n/a n/a

  大多数选项在默认情况下是禁用的,压缩【参数】

Option Description Default
caseSensitive 以区分大小写的方式处理属性(适用于定制的HTML标记) false
collapseBooleanAttributes 从布尔属性中省略属性值。 false
collapseInlineTagWhitespace Don't leave any spaces between display:inline;elements when collapsing. Must be used in conjunction with collapseWhitespace=true false
collapseWhitespace 在显示之间不要留下任何空格:内联;崩溃时的元素。必须与折叠空间结合使用=true ? false
conservativeCollapse 总是折叠到1个空间(永远不要完全删除它)。必须与折叠空间结合使用=true ? false
customAttrAssign 允许支持自定义属性分配表达式的正则表达式数组。 (e.g. '<div flex?="{{mode != cover}}"></div>') [ ]
customAttrCollapse Regex指定自定义属性以从(例如/ng-class/)删除新行。  
customAttrSurround 允许支持自定义属性包围表达式的正则表达式数组(e.g. <input {{#if value}}checked="checked"{{/if}}> [ ]
customEventAttributes 允许为minifyJS支持自定义事件属性的正则表达式数组(例如,ng-click) [ /^on[a-z]{3,}$/ ]
decodeEntities 尽可能使用直接的Unicode字符。 false
html5 根据HTML5规范分析输入。 true
ignoreCustomComments 当匹配时,允许忽略某些注释的正则表达式数组。 [ /^!/ ]
ignoreCustomFragments 当匹配时,允许忽略某些片段的正则表达式数组(例如<?php……吗?>,{ {…} },等等)。 [ /<%[\s\S]*?%>/, /<\?[\s\S]*?\?>/ ]
includeAutoGeneratedTags 插入由HTML解析器生成的标记。 true
keepClosingSlash 保留单例元素的末尾斜杠。 false
maxLineLength 指定最大行长度。压缩的输出将在有效的HTML分割点上被换行。  
minifyCSS 缩小CSS样式元素和样式属性(usesclean-css) false (could betrueObject,Function(text))
minifyJS 在脚本元素和事件属性中缩小JavaScript(使用UglifyJS) false (could betrueObject,Function(text, inline))
minifyURLs 在各种属性中缩小url(使用relateurl) false (could beStringObject,Function(text))
preserveLineBreaks 当标记之间的空格包括换行符时,总是崩溃到1行中断(永远不要完全删除)。必须与折叠空间结合使用=true ? false
preventAttributesEscaping 防止属性值的溢出。 false
processConditionalComments 通过minifier处理条件评论的内容。 false
processScripts 通过minifier(例如text/ng-template、text/x-handlebars-template等)来处理脚本元素类型的字符串数组。 [ ]
quoteCharacter 用于属性值的引用类型('or')  
removeAttributeQuotes 在可能的情况下删除引号。 false
removeComments 带HTML注释 false
removeEmptyAttributes 删除所有的属性,只有whitespace-only的值。 false (could betrue,Function(attrName, tag))
removeEmptyElements 删除所有含有空内容的元素。 false
removeOptionalTags 删除可选的标记 false
removeRedundantAttributes 当值匹配默认值时删除属性。 false
removeScriptTypeAttributes 从脚本标签中删除type="text/javascript"。其他类型的属性值是完整的。 false
removeStyleLinkTypeAttributes 从style和link标签中删除type="text/css"。其他类型的属性值是完整的。 false
removeTagWhitespace 尽可能在属性之间移除空间。注意,这将导致无效的HTML! false
sortAttributes 根据频率属性进行排序 false
sortClassName 按频率分类样式类。 false
trimCustomFragments 在ignoreCustomFragments周围调整空白区域。 false
useShortDoctype 用short (HTML5) doctype替换doctype。 false

  排序属性/样式类

    像sortAttributes和sortClassName这样的缩小器选项不会影响输出的纯文本大小。但是,它们形成了长时间重复的字符链,可以提高HTTP压缩中使用的gzip压缩率。

  英文文档链接:https://github.com/kangax/html-minifier#user-content-options-quick-reference

html-minifier中文文档的更多相关文章

  1. Phoenix综述(史上最全Phoenix中文文档)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/users/6cb45a00b49c/latest_articles 网上关于P ...

  2. Chart.js中文文档-雷达图

    雷达图或蛛网图(Radar chart) 简介 A radar chart is a way of showing multiple data points and the variation bet ...

  3. Knockout中文开发指南(完整版API中文文档) 目录索引

    a, .tree li > span { padding: 4pt; border-radius: 4px; } .tree li a { color:#46cfb0; text-decorat ...

  4. ReactNative官方中文文档0.21

    整理了一份ReactNative0.21中文文档,提供给需要的reactnative爱好者.ReactNative0.21中文文档.chm  百度盘下载:ReactNative0.21中文文档 来源: ...

  5. java中文文档官方下载

    一直在寻找它,今天无意之间终于发现它了! http://download.oracle.com/technetwork/java/javase/6/docs/zh/api/overview-summa ...

  6. Spring中文文档

    前一段时间翻译了Jetty的一部分文档,感觉对阅读英文没有大的提高(*^-^*),毕竟Jetty的受众面还是比较小的,而且翻译过程中发现Jetty的文档写的不是很好,所以呢翻译的兴趣慢慢就不大了,只能 ...

  7. jQuery 3.1 API中文文档

    jQuery 3.1 API中文文档 一.核心 1.1 核心函数 jQuery([selector,[context]]) 接收一个包含 CSS 选择器的字符串,然后用这个字符串去匹配一组元素. jQ ...

  8. jQuery EasyUI API 中文文档 - ComboGrid 组合表格

    jQuery EasyUI API 中文文档 - ComboGrid 组合表格,需要的朋友可以参考下. 扩展自 $.fn.combo.defaults 和 $.fn.datagrid.defaults ...

  9. jQuery EasyUI API 中文文档 - ValidateBox验证框

    jQuery EasyUI API 中文文档 - ValidateBox验证框,使用jQuery EasyUI的朋友可以参考下.   用 $.fn.validatebox.defaults 重写了 d ...

  10. Weex中文文档

    这里整理当前已译出的Weex中文文档,如需查阅完整Weex文档,请访问http://alibaba.github.io/weex/doc/ . 同时也欢迎大家参与Weex中文文档翻译 [Guide] ...

随机推荐

  1. kubernetes学习笔记之十:RBAC

    第一章.RBAC介绍 在Kubernetes中,授权有ABAC(基于属性的访问控制).RBAC(基于角色的访问控制).Webhook.Node.AlwaysDeny(一直拒绝)和AlwaysAllow ...

  2. cxf+spring+soap简单接口开发

    最近学了cxf框架开发webservice,简单搭了个接口,方便后续翻阅,本人才疏学浅,若有不足,请多多谅解! 一.服务端: 1.所用到的jar包: maven的pom.xml配置: <proj ...

  3. Android 开发 框架系列 EventBus 事件总线

    介绍 GitHub:https://github.com/greenrobot/EventBus 先聊聊EventBus 线程总线是干什么的,使用环境,优点.缺点. 干什么的? 一句话,简单统一数据传 ...

  4. spring boot 之 错误:SpelEvaluationException: EL1008E: Property or field 'timestamp' cannot be found on object of type 'java.util.HashMap'

    这个错误我也见过很多次了,今天终于理解了其出现的原因. 错误是这样的: 2017-11-23 18:05:39.504 ERROR 4092 --- [nio-8080-exec-3] o.a.c.c ...

  5. kettle 无法正常启动问题

    Java环境配置后,双击spoon.bat无法打开 修改spoon.bat里内存配置: if "%PENTAHO_DI_JAVA_OPTIONS%"=="" s ...

  6. 201772020113李清华《面向对象程序设计(java)》第一周学习总结

    201772020113<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com b ...

  7. leetcode53

    public class Solution { public int MaxSubArray(int[] nums) { int max = int.MinValue; ; ; i < nums ...

  8. leetcode1030

    class Solution(object): def __init__(self): self.List = list() def bfs(self,R,C,S,V): T = list() whi ...

  9. Java Day26进程01天

    Java开启多个线程有两种方法,一种继承Thread类,一种实现Runnable接口.具体示例如下: 01继承Thread类 02实现Runnable接口

  10. SpringCloud详解

    来源于纯洁的微笑 http://www.ityouknow.com/spring-cloud.html