html-minifier中文文档
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 |
---|---|---|---|---|---|
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 |
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 betrue , Object ,Function(text) ) |
minifyJS |
在脚本元素和事件属性中缩小JavaScript(使用UglifyJS) | false (could betrue , Object ,Function(text, inline) ) |
minifyURLs |
在各种属性中缩小url(使用relateurl) | false (could beString , Object ,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
有耕耘、有搬运、共学习