固执己见的html/xml soup格式化程序

zprett的Python项目详细描述


https://travis-ci.org/collective/zpretty.svg?branch=masterhttps://coveralls.io/repos/github/collective/zpretty/badge.svg?branch=master

非常自以为是的方式格式化的工具 包含XML片段的HTML、XML和文本。

它满足了一个主要的需求:减少了散播html/xml的痛苦。

为此,zpretty格式化标记 遵循这些经验法则:

  • 最大化垂直空间/减小线长度
  • 属性应一致排序
  • 属性排序首先是语义排序,然后是字母排序

此工具了解 TAL language 并有一些专门的功能。

注意

这个工具不是绒布! 如果你在找皮棉,安全的赌注是 Tidyxmllint

注意

您可能有解析问题! zpretty将为您关闭一些已知的自动关闭标记, 像inputimg一样,允许在HTML中打开。

注意

zpretty不够聪明,无法正确理解无值属性! 一些工作正在进行中,但它最好使用“正常”属性。

注意

缺少特性/速度慢是一个已知的问题。 目前,开发的重点是拥有一个工作工具。 所以它工作得足够快:不到一秒钟就可以格式化一个约100k的文件。 新的功能已经计划好了,而且可以很容易地提高性能 获得。 无论如何,zpretty不是格式化大文件(>;1 MB)的选项。

请参阅TODO section了解对未来的预测。

源代码和问题跟踪程序托管在 GitHub

安装

建议的instal方法使用 pip

$ pip install zpretty

用法

基本用法:

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]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javapojo到org。布森。文件,反之亦然   java突然增加了G1老一代的承诺内存,减少了Eden的大小   java为什么对多个RXJava观察对象不执行并行执行?   java中的枚举是故障安全的吗?如果是,怎么做?   java是等待字符串变为相等的正确方法   java CodeAbbey挑战14个数据输入问题?   在java中的任意位置插入。util。列表   java替换html中的值   java需要帮助破译一个小堆栈跟踪:我使用的是哪种WS?   java Guice依赖项注入器空指针异常   java如何在3D引擎中实现视图剪裁平面?   JavaEclipseRCP:操作与命令需要更新   java如何使用XPAGES DesignerFacesServlet显示泰语字母(以及另一个亚洲/阿拉伯字母)   java装饰器模式问题   java我对空间复杂性的分析正确吗?   不显示java OpenGL ES 2纹理   使用java问题中的wc命令计算行数   java为什么空指针异常取决于条件的顺序?   Java日期在同一天或同一个月   java在使用lambda表达式时在变量中存储一些值