2

我正在使用这个 html5-tidy 程序来管道调试输出从 Web 应用程序显示到控制台,以便作为开发人员,包含 HTML 的字符串变量的调试转储不会是一个糟糕的文本块,而是有点结构化HTML 视图。

这基本上是对我已经完成perltidy的用于检查 perl 数据结构的扩展:从 Data::Dumper 输出的字符串被发送perltidy,以便人们更容易分析。因为 Dumper 只会产生语法上有效的 Perl,所以它工作得很好。

直到我们到达 HTML 文本变量的大块为止。

所以我想对文本做同样的事情(智能地插入空格和换行符),但是tidy为我做了太多的工作:

$ ../bin/tidy -q test_tidy.html 2>/dev/null | diff test_tidy.html -
1,6c1,17
< <!-- COMMENT --> <p>This example shows how Tidy can indent output while preserving formatting of particular elements.</p><pre>This is <em>genuine preformatted</em> text</pre> <!-- END -->
---
> <!-- COMMENT -->
> <!DOCTYPE html>
> <html>
> <head>
> <meta name="generator" content=
> "HTML Tidy for HTML5 (experimental) for Linux https://github.com/w3c/tidy-html5/tree/c63cc39">
> <title></title>
> </head>
> <body>
> <p>This example shows how Tidy can indent output while preserving
> formatting of particular elements.</p>
> <pre>
> This is <em>genuine preformatted</em> text
> </pre>
> <!-- END -->
> </body>
> </html>

从理论上讲,我可以假设如何tidy“总是”添加那些无关的东西,然后基本上将它们提取出来,或者其他什么。但这很可怕,原因有很多。首先,如果我进去把那些东西拿出来,那么如果输入的内容正确或部分正确,它将被更改tidy为比原始输入更正确,这很糟糕!我可以潜在地显示两个副本,这样在使用该工具时就不会出现奇怪的歧义。但我想避免这种情况,并以某种方式tidy对这些 HTML 片段进行整理,而不是尝试构建一个独立的 HTML 页面。

但是我基本上真的很接近我想要的东西,所以我宁愿不尝试从头开始制作一些东西,因为我知道这会很困难并且容易出错。Tidy 还会自动通过 STDERR 发送一个非常好的警告和错误集合(我在上面的示例中抑制了这些),它们也非常适合与调试功能一起放置,因为虽然我们有一个很好的自动代码检查标准来处理 perl,但生成的 HTML 不受任何形式的审查。

4

1 回答 1

0

在我看来,你甚至不应该使用 html tidy。它会导致糟糕的编码实践。但是,您可以验证您的代码。这应该使事情更整洁一些。

http://jigsaw.w3.org/css-validator/

http://validator.w3.org/

于 2013-04-16T13:20:16.060 回答