【问题标题】:A command-line HTML pretty-printer: Making messy HTML readable [closed]命令行 HTML 漂亮打印机:使凌乱的 HTML 可读 [关闭]
【发布时间】:2011-01-12 14:45:52
【问题描述】:

我正在寻找符合以下要求的 HTML 漂亮打印机的推荐:

  • 将 HTML 作为输入,然后输出给定输入 HTML 格式良好/缩进正确但“图形等效”的版本。
  • 必须支持命令行操作。
  • 必须是开源的并在 Linux 下运行。

【问题讨论】:

  • 其他选项有pup(不带参数)、xmllint --format --html -xml fo --html
  • 卷曲httpbin.org |整洁-im
  • 另外:来自 html-xml-utils (Debian) 的 hxnormalize
  • 相关:stackoverflow.com/questions/16090869/… 你也可以查看 XML 工具
  • 老实说,我确实很难理解为什么这被认为是题外话......

标签: html pretty-print tidy


【解决方案1】:

看看 HTML Tidy 项目:http://www.html-tidy.org/

HTML 工具的鼻祖,支持现代标准。

曾经有一个名为 tidy-html5 的分支,后来成为官方的东西。这是它的GitHub repository

Tidy 是适用于 Mac OS X、Linux、Windows、UNIX 等的控制台应用程序。它通过修复标记错误并将遗留代码升级到现代标准来纠正和清理 HTML 和 XML 文档。

根据您的需要,这里是调用 Tidy 的命令行:

tidy inputfile.html

【讨论】:

  • 谢谢! “tidy -i -m -w 160 -ashtml -utf8 index.html” 成功了!事实证明 tidy 默认安装在 MacOS X 中 - 太棒了!
  • Tidy 一直在努力获得缩进,直到我使用此选项运行它(而不是使用 -i: tidy --indent yes 让它默认为“自动”)
  • Tidy 作为验证器/lint 工具很棒,但不如代码美化器那么好。两个问题:(1)它只能对文件进行操作,不能对标准输入进行操作(例如,您不能将选定的文本从 Notepad++ 发送到 tidy.exe,并将格式化的代码输出回 Notepad++); (2) 大量代码格式化有问题,例如:<form><input><input><input><input><input></form>
  • 当它无法理解文本时它也会修改文件。
  • 关于tidy-html5的一点说明,如果你使用内联javascript,你需要包含type="text/javascript"否则tidy会添加<![CDATA[
【解决方案2】:

2018 年更新:homebrew/dupes 现已弃用,可直接安装 tidy-html5。

brew install tidy-html5

原回复:

来自 OS X 的Tidy 不支持HTML5。但是Github 上有一个实验分支。

得到它:

 brew tap homebrew/dupes
 brew install tidy --HEAD
 brew untap homebrew/dupes

就是这样!玩得开心!

【讨论】:

  • Error: No available formula with the name "tidy"brew install tidy-html5 工作。
  • 确实 brew install tidy-html5 有效,您也不需要自制软件/骗子。
  • Tidy 不仅仅是格式化 HTML。它将删除空标签重新排序技术上无效的HTML,浏览器接受(阅读:在互联网上使用)。 <p class="a"><div class="b"></div></p> 被重新排序为 <p class="a"></p><div class="b"></div> 和类似 <p><div></div></p> 的东西被删除。见this GitHub issue。如果你使用 tidy,你应该在安静模式下运行它 tidy -q 并且不要忽略任何像 trimming empty <p> 这样的警告。不要在不是你写的 HTML 上使用它。
【解决方案3】:

要对这个问题有一个更新的、与操作系统无关的答案:

虽然 original HTMLTidy 项目一直是 dormant for over 6 years,但名为 "HTML Tidy Advocacy Community Group (HTACG)""W3C Community & Business group" 现在已经开始继续开发,目标是使其完全成为 HTML5-兼容。该小组成立于 2015 年 1 月,尽管他们将当前状态描述为“正在进行中”,但二进制文件已经可供下载。

【讨论】:

    【解决方案4】:

    我认为HTML tidy 是该领域家喻户晓的名字之一。

    【讨论】:

      【解决方案5】:

      只是对 OT 问题的后期跟进。

      Homebrew 如您所愿安装了tidy-html5

      链接为tidy5

      【讨论】:

      • Tidy 仍然主要用作 HTML 格式化程序和验证程序,而不是 HTML 解析器。 基于规则可以使用哪个工具进行HTML解析:在代码中搜索具有指定'class'或'id'的目标元素(标签),并将它们与内容(子标签)一起删除?加上删除指定的标签。
      • @triwo 如果您有新问题,尤其是与原始问题无关的问题,请发布新问题 :) 需要注意的是工具/库/等的请求。通常被认为是题外话。一般来说,任何带有 XPath 或 CSS 选择器查询的 HTML 解析器都应该能够以任意方式操作 DOM。
      猜你喜欢
      • 1970-01-01
      • 2011-03-23
      • 2012-10-04
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 2010-12-26
      • 2016-02-25
      • 2015-01-12
      相关资源
      最近更新 更多