固执己见的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第三方库


热门话题
java我的计时器(scheduleAtFixedRate)不循环   如何在Java中实现过滤迭代器?   java如何在不从本地xml、csv文件访问API的情况下将变量发布到php站点?   SuiteClasses语法的Java JUnit类数组   java从URLConnection读取二进制文件   java在Android Studio中发送加密文本时失败   Android:最近最少使用(LRU)算法在java中的实现?   java Selenium WebDriver无法打开Firefox配置文件   java如何处理带有嵌套抽象类的GSON?   java类型通知的方法SetLateStevenInfo(GcmMessageHandler,String,String,PendingContent)未定义   java Apple或Mac Mail会打开所有附件图像,即使它们已嵌入   java如何解析下面的xml代码?   java如何创建特定于API级别的UI(针对平板电脑和Android旧版本的不同UI,针对同一应用)?   servlet的通配符路径?