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
html-minifier中文文档的更多相关文章
- Phoenix综述(史上最全Phoenix中文文档)
个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/users/6cb45a00b49c/latest_articles 网上关于P ...
- Chart.js中文文档-雷达图
雷达图或蛛网图(Radar chart) 简介 A radar chart is a way of showing multiple data points and the variation bet ...
- Knockout中文开发指南(完整版API中文文档) 目录索引
a, .tree li > span { padding: 4pt; border-radius: 4px; } .tree li a { color:#46cfb0; text-decorat ...
- ReactNative官方中文文档0.21
整理了一份ReactNative0.21中文文档,提供给需要的reactnative爱好者.ReactNative0.21中文文档.chm 百度盘下载:ReactNative0.21中文文档 来源: ...
- java中文文档官方下载
一直在寻找它,今天无意之间终于发现它了! http://download.oracle.com/technetwork/java/javase/6/docs/zh/api/overview-summa ...
- Spring中文文档
前一段时间翻译了Jetty的一部分文档,感觉对阅读英文没有大的提高(*^-^*),毕竟Jetty的受众面还是比较小的,而且翻译过程中发现Jetty的文档写的不是很好,所以呢翻译的兴趣慢慢就不大了,只能 ...
- jQuery 3.1 API中文文档
jQuery 3.1 API中文文档 一.核心 1.1 核心函数 jQuery([selector,[context]]) 接收一个包含 CSS 选择器的字符串,然后用这个字符串去匹配一组元素. jQ ...
- jQuery EasyUI API 中文文档 - ComboGrid 组合表格
jQuery EasyUI API 中文文档 - ComboGrid 组合表格,需要的朋友可以参考下. 扩展自 $.fn.combo.defaults 和 $.fn.datagrid.defaults ...
- jQuery EasyUI API 中文文档 - ValidateBox验证框
jQuery EasyUI API 中文文档 - ValidateBox验证框,使用jQuery EasyUI的朋友可以参考下. 用 $.fn.validatebox.defaults 重写了 d ...
- Weex中文文档
这里整理当前已译出的Weex中文文档,如需查阅完整Weex文档,请访问http://alibaba.github.io/weex/doc/ . 同时也欢迎大家参与Weex中文文档翻译 [Guide] ...
随机推荐
- kubernetes学习笔记之十:RBAC
第一章.RBAC介绍 在Kubernetes中,授权有ABAC(基于属性的访问控制).RBAC(基于角色的访问控制).Webhook.Node.AlwaysDeny(一直拒绝)和AlwaysAllow ...
- cxf+spring+soap简单接口开发
最近学了cxf框架开发webservice,简单搭了个接口,方便后续翻阅,本人才疏学浅,若有不足,请多多谅解! 一.服务端: 1.所用到的jar包: maven的pom.xml配置: <proj ...
- Android 开发 框架系列 EventBus 事件总线
介绍 GitHub:https://github.com/greenrobot/EventBus 先聊聊EventBus 线程总线是干什么的,使用环境,优点.缺点. 干什么的? 一句话,简单统一数据传 ...
- 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 ...
- kettle 无法正常启动问题
Java环境配置后,双击spoon.bat无法打开 修改spoon.bat里内存配置: if "%PENTAHO_DI_JAVA_OPTIONS%"=="" s ...
- 201772020113李清华《面向对象程序设计(java)》第一周学习总结
201772020113<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.com b ...
- leetcode53
public class Solution { public int MaxSubArray(int[] nums) { int max = int.MinValue; ; ; i < nums ...
- leetcode1030
class Solution(object): def __init__(self): self.List = list() def bfs(self,R,C,S,V): T = list() whi ...
- Java Day26进程01天
Java开启多个线程有两种方法,一种继承Thread类,一种实现Runnable接口.具体示例如下: 01继承Thread类 02实现Runnable接口
- SpringCloud详解
来源于纯洁的微笑 http://www.ityouknow.com/spring-cloud.html