CSS HTML JS Minifier
项目描述
# css-html-js-minify
Async 单文件跨平台无依赖性 Minifier for the Web. [](https://open-source.org.cn/licenses/GPL-3.0) [](https://open-source.org.cn/licenses/LGPL-3.0) [](https://pythonlang.cn) [](https://travis-ci.org/juancarlospaco/css-html-js-minify)

https://pypi.python.org/pypi/css-html-js-minify
```shell
css-html-js-minify.py --help
用法:css-html-js-minify.py [-h] [--version] [--wrap] [--prefix PREFIX]
[--timestamp] [--quiet] [--hash] [--zipy]
[--sort] [--comments] [--overwrite]
[--after AFTER] [--before BEFORE] [--watch]
[--multiple] [--beep]
fullpath
CSS-HTML-JS-Minify. StandAlone Async cross-platform Unicode-ready Python3-ready Minifier for the Web.
位置参数
fullpath 本地文件或文件夹的完整路径。
可选参数
-h, --help 显示此帮助信息并退出
--version 显示程序版本号并退出
--wrap 将输出包裹为每行 ~80 个字符,仅限 CSS。
--prefix PREFIX 在输出文件名前添加前缀字符串。
--timestamp 在所有 CSS/JS 输出文件上添加时间戳。
--quiet 安静,无声,强制禁用所有日志。
--hash 在文件名上添加 SHA1 HEX-Digest 11字符哈希。
--zipy GZIP 压缩为 '*.gz' 的最小化文件,仅限 CSS/JS。
--sort 按字母顺序排序 CSS 属性,仅限 CSS。
--comments 保留注释,仅限 CSS/HTML(不推荐)
--overwrite 强制覆盖所有就地(不推荐)
--after AFTER 运行后要执行的命令(实验性)。
--before BEFORE 运行前要执行的命令(实验性)。
--watch 如果文件更改则重新压缩(实验性)。
--multiple 允许多个实例(不推荐)。
CSS-HTML-JS-Minify:接受文件或文件夹的完整路径字符串,并处理所有
找到的 CSS/HTML/JS。如果参数不是文件/文件夹,将失败。检查更新
适用于 Python3。从标准输入到标准输出的用法已弃用,因为它可能因
Unicode 字符而失败。文件名上的 SHA1 HEX-Digest 11 字符哈希用于
服务器缓存。CSS 属性按字母顺序排序,以帮助查找克隆项,
选择器则不排序。监视适用于整个文件夹,运行之间至少有 ~60 秒的间隔。
。
```
- 接受任何内容的完整路径,文件或文件夹,然后解析、优化和压缩以用于生产。
- 如果完整路径是包含多个文件的文件夹,它将使用异步多进程。
- 将漂亮的彩色日志打印到标准输出和 OS 临时文件夹中的日志文件。
- 设置自己的进程名称并显示在进程列表中。
- 可以检查自己的更新。
- 完全支持 Unicode/UTF-8。
- 平滑的 CPU 使用率,单实例检查。
- 可以混淆、GZIP 和哈希文件,还可以监视文件的更改。
- 可以在运行前后执行任意命令。
- `*.css` 文件保存为 `*.min.css`,`*.js` 保存为 `*.min.js`,`*.htm` 保存为 `*.html`
# 截图
**Linux:**

**Apple Mac Os X:**
[ <sup>*(由 Loggerhead 提供)*</sup> ](https://github.com/juancarlospaco/css-html-js-minify/issues/7#issuecomment-97280835)


**MS Windows:**

# 命令行使用
```bash
css-html-js-minify.py file.htm
css-html-js-minify.py file.css
css-html-js-minify.py file.js
css-html-js-minify.py /project/static/
```
# Python 代码使用
```python
from css_html_js_minify import process_single_html_file, process_single_js_file, process_single_css_file, html_minify, js_minify, css_minify
process_single_html_file('test.htm', overwrite=False)
# 'test.html'
process_single_js_file('test.js', overwrite=False)
# 'test.min.js'
process_single_css_file('test.css', overwrite=False)
# 'test.min.css'
html_minify(' <p>yolo<a href="/" >o </a > <!-- hello --></p>')
# '<p>yolo<a href="/" >o </a > </p>'
js_minify('var i = 1; i += 2 ;\n alert( "hello " ); //hi')
# 'var i=1;i+=2;alert("hello ");'
css_minify('body {width: 50px;}\np {margin-top: 1em;/* hi */ }', comments=False)
# '@charset utf-8;body{width:50px}p{margin-top:1em}'
```
这些函数接受的可选参数几乎与命令行标志相同。
请参阅上面的列表(只需使用 add_hash 而不是 hash 即可)。
# 安装
```
pip安装css-html-js-minify
```
卸载 `pip uninstall css-html-js-minify`
# 为什么?
- **为什么还需要另一个压缩器?**,现在有很多用于网页文件的压缩器!;*或者可能没有?*。
许多仅能在Django/Flask或PHP/Java/Ruby框架内部使用,或者无法处理整个文件夹。
本项目是另一个项目的“大哥”,该项目执行相反的操作,即[网页美化器](https://github.com/juancarlospaco/css-html-prettify#css-html-prettify)
# 迁移
为了保持简单(KISS原则),可读性强的缩进和注释可编辑的HTML保持为`*.htm`,压缩的用于生产的为`*.html`。这受到JavaScript/CSS `*.min.js`和`*.min.css`的启发。[我们并未“发明”这种文件扩展名。](http://en.wikipedia.org/wiki/HTM)
要从典型的文件扩展名HTML迁移到HTM(完全相同),您可以运行以下命令:
```shell
find . -name "*.html" -exec rename "s/.html/.htm/" "{}" \;
```
这将递归地从当前文件夹复制所有`*.html`并重命名为`*.htm`,不会删除任何内容。
# 必需条件
- [Python 3.6+](https://pythonlang.cn "Python官网")
# 编码风格指南
- 必须通过Lint、[PEP-8](https://pythonlang.cn/dev/peps/pep-0008)、[PEP-257](https://pythonlang.cn/dev/peps/pep-0257)、[iSort](https://github.com/timothycrosley/isort)。`pip install pep8 isort`
- 如果有任何类型的测试,它们必须通过。没有测试也可以接受,但有测试会更好。
# JavaScript支持
- 由于变化迅速,主要由Node.JS版本驱动,ES6和ES7以及未来的标准可能不会完全支持。
- 未来JavaScript支持是独立的,如果您想使ES6、ES7工作,请随意发送拉取请求,我们会合并它。
# 贡献者
- **请在GitHub上为这个仓库点赞!**,这有助于更快地出现在搜索结果中。
- [帮助](https://help.github.com/articles/using-pull-requests) 和更多 [帮助](https://help.github.com/articles/fork-a-repo) 以及交互式快速 [Git教程](https://try.github.io)。
# 许可证
- GNU GPL、GNU LGPL和[MIT](https://github.com/juancarlospaco/css-html-js-minify/issues/65#issuecomment-330983569)。
此作品是免费软件
您可以在自由软件基金会发布的GNU通用公共许可证的条款下重新分发和/或修改它,无论是许可证的第3版,还是(根据您的选择)任何后续版本。
分发此作品是为了希望它将是有用的,但没有任何保证;
甚至没有关于其商业性或适用于特定目的的暗示性保证。
有关详细信息,请参阅GNU通用公共许可证。
您应该已经随此作品一起收到GNU通用公共许可证的副本。
# 示例
<details>
**输入CSS:**
```css
/*!
* 保留注释
*/
/* 删除注释 */
.class, #NotHex, input[type="text"], a:hover {
font-family : Helvetica Neue, Arial, Helvetica, 'Liberation Sans', sans-serif;
border: none;
margin: 0 0 0 0;
border-color: fuchsia;
color: mediumspringgreen;
background-position:0 0;;
transform-origin:0 0;
margin: 0px !important;
font-weight :bold;
color: rgb( 255, 255, 255 );
padding : 0.9px;
position : absolute;
z-index : 100000;
color: #000000;
background-color: #FFFFFF;
background-image: url("data:image/jpeg;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=");
;}
;;
```
**Uglify (NodeJS):** *(474 Bytes, 0.189 Secs)*
```css
/* * 保留注释 */ .class,#NotHex,input[type="text"],a:hover {font-family:Helvetica Neue,Arial,Helvetica,'Liberation Sans',sans-serif;border:0;margin:0;border-color:fuchsia;color:mediumspringgreen;background-position:0 0;transform-origin:0 0;margin:0 !important;font-weight:bold;color:#fff;padding:.9px;position:absolute;z-index:100000;color:#000;background-color:#fff;background-image:url("data:image/jpeg;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=")};
```
**css-html-js-minify (Python3):** *(469 Bytes, 0.010 Secs)*
```css
/*!* 保留注释 */ .class,#NotHex,input[type=text],a:hover{font-family:Helvetica Neue,Arial,Helvetica,'Liberation Sans',sans-serif;border:0;margin:0;border-color:#f0f;color:#00fa9a;background-position:0 0;transform-origin:0 0;margin:0 !important;font-weight:700;color:#fff;padding:.9px;position:absolute;z-index:100000;color:#000;background-color:#FFF;background-image:url(data:image/jpg;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=)}
```
</details>
道德和人文主义政策
- 希望这个自由开源软件(FLOSS)始终保持纯洁和干净,无广告软件(AdWare)、无垃圾邮件(Spamm)、无捆绑软件(BundleWare)、无信息广告(Infomercial)、无恶意软件(MalWare)。
- 本项目对 [LGBTQQIAAP 友好](http://www.urbandictionary.com/define.php?term=LGBTQQIAAP "什么是 LGBTQQIAAP")。
Async 单文件跨平台无依赖性 Minifier for the Web. [](https://open-source.org.cn/licenses/GPL-3.0) [](https://open-source.org.cn/licenses/LGPL-3.0) [](https://pythonlang.cn) [](https://travis-ci.org/juancarlospaco/css-html-js-minify)

https://pypi.python.org/pypi/css-html-js-minify
```shell
css-html-js-minify.py --help
用法:css-html-js-minify.py [-h] [--version] [--wrap] [--prefix PREFIX]
[--timestamp] [--quiet] [--hash] [--zipy]
[--sort] [--comments] [--overwrite]
[--after AFTER] [--before BEFORE] [--watch]
[--multiple] [--beep]
fullpath
CSS-HTML-JS-Minify. StandAlone Async cross-platform Unicode-ready Python3-ready Minifier for the Web.
位置参数
fullpath 本地文件或文件夹的完整路径。
可选参数
-h, --help 显示此帮助信息并退出
--version 显示程序版本号并退出
--wrap 将输出包裹为每行 ~80 个字符,仅限 CSS。
--prefix PREFIX 在输出文件名前添加前缀字符串。
--timestamp 在所有 CSS/JS 输出文件上添加时间戳。
--quiet 安静,无声,强制禁用所有日志。
--hash 在文件名上添加 SHA1 HEX-Digest 11字符哈希。
--zipy GZIP 压缩为 '*.gz' 的最小化文件,仅限 CSS/JS。
--sort 按字母顺序排序 CSS 属性,仅限 CSS。
--comments 保留注释,仅限 CSS/HTML(不推荐)
--overwrite 强制覆盖所有就地(不推荐)
--after AFTER 运行后要执行的命令(实验性)。
--before BEFORE 运行前要执行的命令(实验性)。
--watch 如果文件更改则重新压缩(实验性)。
--multiple 允许多个实例(不推荐)。
CSS-HTML-JS-Minify:接受文件或文件夹的完整路径字符串,并处理所有
找到的 CSS/HTML/JS。如果参数不是文件/文件夹,将失败。检查更新
适用于 Python3。从标准输入到标准输出的用法已弃用,因为它可能因
Unicode 字符而失败。文件名上的 SHA1 HEX-Digest 11 字符哈希用于
服务器缓存。CSS 属性按字母顺序排序,以帮助查找克隆项,
选择器则不排序。监视适用于整个文件夹,运行之间至少有 ~60 秒的间隔。
。
```
- 接受任何内容的完整路径,文件或文件夹,然后解析、优化和压缩以用于生产。
- 如果完整路径是包含多个文件的文件夹,它将使用异步多进程。
- 将漂亮的彩色日志打印到标准输出和 OS 临时文件夹中的日志文件。
- 设置自己的进程名称并显示在进程列表中。
- 可以检查自己的更新。
- 完全支持 Unicode/UTF-8。
- 平滑的 CPU 使用率,单实例检查。
- 可以混淆、GZIP 和哈希文件,还可以监视文件的更改。
- 可以在运行前后执行任意命令。
- `*.css` 文件保存为 `*.min.css`,`*.js` 保存为 `*.min.js`,`*.htm` 保存为 `*.html`
# 截图
**Linux:**

**Apple Mac Os X:**
[ <sup>*(由 Loggerhead 提供)*</sup> ](https://github.com/juancarlospaco/css-html-js-minify/issues/7#issuecomment-97280835)


**MS Windows:**

# 命令行使用
```bash
css-html-js-minify.py file.htm
css-html-js-minify.py file.css
css-html-js-minify.py file.js
css-html-js-minify.py /project/static/
```
# Python 代码使用
```python
from css_html_js_minify import process_single_html_file, process_single_js_file, process_single_css_file, html_minify, js_minify, css_minify
process_single_html_file('test.htm', overwrite=False)
# 'test.html'
process_single_js_file('test.js', overwrite=False)
# 'test.min.js'
process_single_css_file('test.css', overwrite=False)
# 'test.min.css'
html_minify(' <p>yolo<a href="/" >o </a > <!-- hello --></p>')
# '<p>yolo<a href="/" >o </a > </p>'
js_minify('var i = 1; i += 2 ;\n alert( "hello " ); //hi')
# 'var i=1;i+=2;alert("hello ");'
css_minify('body {width: 50px;}\np {margin-top: 1em;/* hi */ }', comments=False)
# '@charset utf-8;body{width:50px}p{margin-top:1em}'
```
这些函数接受的可选参数几乎与命令行标志相同。
请参阅上面的列表(只需使用 add_hash 而不是 hash 即可)。
# 安装
```
pip安装css-html-js-minify
```
卸载 `pip uninstall css-html-js-minify`
# 为什么?
- **为什么还需要另一个压缩器?**,现在有很多用于网页文件的压缩器!;*或者可能没有?*。
许多仅能在Django/Flask或PHP/Java/Ruby框架内部使用,或者无法处理整个文件夹。
本项目是另一个项目的“大哥”,该项目执行相反的操作,即[网页美化器](https://github.com/juancarlospaco/css-html-prettify#css-html-prettify)
# 迁移
为了保持简单(KISS原则),可读性强的缩进和注释可编辑的HTML保持为`*.htm`,压缩的用于生产的为`*.html`。这受到JavaScript/CSS `*.min.js`和`*.min.css`的启发。[我们并未“发明”这种文件扩展名。](http://en.wikipedia.org/wiki/HTM)
要从典型的文件扩展名HTML迁移到HTM(完全相同),您可以运行以下命令:
```shell
find . -name "*.html" -exec rename "s/.html/.htm/" "{}" \;
```
这将递归地从当前文件夹复制所有`*.html`并重命名为`*.htm`,不会删除任何内容。
# 必需条件
- [Python 3.6+](https://pythonlang.cn "Python官网")
# 编码风格指南
- 必须通过Lint、[PEP-8](https://pythonlang.cn/dev/peps/pep-0008)、[PEP-257](https://pythonlang.cn/dev/peps/pep-0257)、[iSort](https://github.com/timothycrosley/isort)。`pip install pep8 isort`
- 如果有任何类型的测试,它们必须通过。没有测试也可以接受,但有测试会更好。
# JavaScript支持
- 由于变化迅速,主要由Node.JS版本驱动,ES6和ES7以及未来的标准可能不会完全支持。
- 未来JavaScript支持是独立的,如果您想使ES6、ES7工作,请随意发送拉取请求,我们会合并它。
# 贡献者
- **请在GitHub上为这个仓库点赞!**,这有助于更快地出现在搜索结果中。
- [帮助](https://help.github.com/articles/using-pull-requests) 和更多 [帮助](https://help.github.com/articles/fork-a-repo) 以及交互式快速 [Git教程](https://try.github.io)。
# 许可证
- GNU GPL、GNU LGPL和[MIT](https://github.com/juancarlospaco/css-html-js-minify/issues/65#issuecomment-330983569)。
此作品是免费软件
您可以在自由软件基金会发布的GNU通用公共许可证的条款下重新分发和/或修改它,无论是许可证的第3版,还是(根据您的选择)任何后续版本。
分发此作品是为了希望它将是有用的,但没有任何保证;
甚至没有关于其商业性或适用于特定目的的暗示性保证。
有关详细信息,请参阅GNU通用公共许可证。
您应该已经随此作品一起收到GNU通用公共许可证的副本。
# 示例
<details>
**输入CSS:**
```css
/*!
* 保留注释
*/
/* 删除注释 */
.class, #NotHex, input[type="text"], a:hover {
font-family : Helvetica Neue, Arial, Helvetica, 'Liberation Sans', sans-serif;
border: none;
margin: 0 0 0 0;
border-color: fuchsia;
color: mediumspringgreen;
background-position:0 0;;
transform-origin:0 0;
margin: 0px !important;
font-weight :bold;
color: rgb( 255, 255, 255 );
padding : 0.9px;
position : absolute;
z-index : 100000;
color: #000000;
background-color: #FFFFFF;
background-image: url("data:image/jpeg;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=");
;}
;;
```
**Uglify (NodeJS):** *(474 Bytes, 0.189 Secs)*
```css
/* * 保留注释 */ .class,#NotHex,input[type="text"],a:hover {font-family:Helvetica Neue,Arial,Helvetica,'Liberation Sans',sans-serif;border:0;margin:0;border-color:fuchsia;color:mediumspringgreen;background-position:0 0;transform-origin:0 0;margin:0 !important;font-weight:bold;color:#fff;padding:.9px;position:absolute;z-index:100000;color:#000;background-color:#fff;background-image:url("data:image/jpeg;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=")};
```
**css-html-js-minify (Python3):** *(469 Bytes, 0.010 Secs)*
```css
/*!* 保留注释 */ .class,#NotHex,input[type=text],a:hover{font-family:Helvetica Neue,Arial,Helvetica,'Liberation Sans',sans-serif;border:0;margin:0;border-color:#f0f;color:#00fa9a;background-position:0 0;transform-origin:0 0;margin:0 !important;font-weight:700;color:#fff;padding:.9px;position:absolute;z-index:100000;color:#000;background-color:#FFF;background-image:url(data:image/jpg;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=)}
```
</details>
道德和人文主义政策
- 希望这个自由开源软件(FLOSS)始终保持纯洁和干净,无广告软件(AdWare)、无垃圾邮件(Spamm)、无捆绑软件(BundleWare)、无信息广告(Infomercial)、无恶意软件(MalWare)。
- 本项目对 [LGBTQQIAAP 友好](http://www.urbandictionary.com/define.php?term=LGBTQQIAAP "什么是 LGBTQQIAAP")。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。
源代码分发
css-html-js-minify-2.5.5.zip (33.2 kB 查看哈希值)
构建分发
css_html_js_minify-2.5.5-py3.6.egg (24.8 kB 查看哈希值)
关闭
css-html-js-minify-2.5.5.zip 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4a9f11f7e0496f5284d12111f3ba4ff5ff2023d12f15d195c9c48bd97013746c |
|
MD5 | 38801232f075d450ae652f19c5a0ee6f |
|
BLAKE2b-256 | 7561f52e5225abe8e36ed5396e5ae3074df5f4ef994b540e9b4fd55a39b03cfd |
关闭
css-html-js-minify-2.5.5-py3.6.egg 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4704e04a0cd6dd56d61bbfa3bfffc630da6b2284be33519be0b456672e2a2438 |
|
MD5 | 5e68978c5cabf2f8089b68d8fcdbe8b8 |
|
BLAKE2b-256 | e1d42ef9a69ada848b8903344e7d159bc0d7ff0fbcb7395cf23879e955d72155 |
关闭
css_html_js_minify-2.5.5-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3da9d35ac0db8ca648c1b543e0e801d7ca0bab9e6bfd8418fee59d5ae001727a |
|
MD5 | 53ca7976b66c7c840635bef48d1e49d3 |
|
BLAKE2b-256 | e8211260081a2c67105a3bd0f8692ff3c80b5f0cb5fe9f3f8fd4a990f17b8a39 |