固执己见的html/xml soup格式化程序
zprett的Python项目详细描述
以非常自以为是的方式格式化的工具 包含XML片段的HTML、XML和文本。
它满足了一个主要的需求:减少了散播html/xml的痛苦。
为此,zpretty格式化标记 遵循这些经验法则:
- 最大化垂直空间/减小线长度
- 属性应一致排序
- 属性排序首先是语义排序,然后是字母排序
此工具了解 TAL language 并有一些专门的功能。
注意
您可能有解析问题! zpretty将为您关闭一些已知的自动关闭标记, 像input和img一样,允许在HTML中打开。
注意
zpretty不够聪明,无法正确理解无值属性! 一些工作正在进行中,但它最好使用“正常”属性。
注意
缺少特性/速度慢是一个已知的问题。 目前,开发的重点是拥有一个工作工具。 所以它工作得足够快:不到一秒钟就可以格式化一个约100k的文件。 新的功能已经计划好了,而且可以很容易地提高性能 获得。 无论如何,zpretty不是格式化大文件(>;1 MB)的选项。
请参阅TODO section了解对未来的预测。
源代码和问题跟踪程序托管在 GitHub。
用法
基本用法:
zpretty [-h] [--encoding ENCODING] [-i] [-x] [-z] [file [file ...]] positional arguments: file The list of files to prettify (defaults to stdin) optional arguments: -h, --help show this help message and exit --encoding ENCODING The file encoding (defaults to utf8) -i, --inplace Format files in place (overwrite existing file) -x, --xml Threat the input file(s) as XML -z, --zcml Threat the input file(s) as XML. Follow the ZCML styleguide
没有限制文件类型的参数(例如-x,-z,…) zpretty会尽力为你猜出正确的选择。
示例:
zpretty hello_world.html
开发
$ git clone ... $ cd zpretty $ make
运行测试
$ make test
待办事项
- []支持Python 3…;)
- []XML中不允许使用无值属性
- []如果前一个同级没有空格,则属性以奇怪的方式对齐
- []待定:样式属性应为多行
更改日志
0.9.3(2017-05-06)
- 固定文本方法
- 在文本中保留实体
- 添加了一个编码参数
- 添加了一个XML参数来强制XML解析
- 如果没有解析器,则根据给定的文件名选择更好的解析器 强制
- 如果参数中有“-”或未传递参数,则处理stdin [ALE RT]
0.9.2(2017-02-27)
- 对zcml属性的顺序进行小修改
- 自动将新行添加到美化文件的末尾
- 自我治疗打开自我关闭标签。 [ALE RT]
0.9.1.1(2017-02-18)
- 修正了错误的释放。 [ALE RT]
0.9.1(2017-02-18)
- zcml样式指南的初始支持(3)。 [ALE RT]
0.9.0(2017-02-11)
- 初次发布。 [ALE RT]