75

通缉

在 Linux 下运行的命令行 HTML5 美化器。

输入

乱码,丑陋的 HTML5 代码。可能是多个模板的结果。你不爱它,它不爱你。

输出

纯美。代码很好地缩进,有足够的换行符,关心它的空格。您希望直接在您的网站上显示代码,而不是在网络浏览器中查看它。

嫌疑人

  • tidy做的太多了(哎呀,它改变了我的文档类型!),它不适用于 HTML5。也许有办法让它合作而不改变任何东西
  • vim做的太少了。它只是缩进。我希望程序添加和删除换行符,并使用标签内的空格。

死或生!

4

4 回答 4

27

HTML Tidy 由 w3c 分叉,现在支持 HTML5 验证。

https://github.com/w3c/tidy-html5

于 2011-11-30T01:25:23.163 回答
19

我怀疑 tidy 可以使用正确的命令行参数。

http://tidy.sourceforge.net/docs/quickref.html

您可以指定任意 doctype 并添加新的块、内联和空标签,并打开和关闭许多 tidy 的清理选项。

根据您希望它“美化”的内容,您可能会得到不错的结果。它可能无法做一些更高级的事情,比如重写 html 内容以消除虚假元素或组合它们,如果它不能识别它们。

于 2010-05-05T18:01:28.597 回答
9

从一个现场网站复制,我使用 HTML5 验证为所有页面上的正确 HTML5,这要归功于这个片段(在这种情况下是 PHP,但选项和逻辑对于使用的任何语言都是相同的):

    $options = array(
        'hide-comments' => true,
        'tidy-mark' => false,
        'indent' => true,
        'indent-spaces' => 4,
        'new-blocklevel-tags' => 'article,header,footer,section,nav',
        'new-inline-tags' => 'video,audio,canvas,ruby,rt,rp',
        'new-empty-tags' => 'source',
        'doctype' => '<!DOCTYPE HTML>',
        'sort-attributes' => 'alpha',
        'vertical-space' => false,
        'output-xhtml' => true,
        'wrap' => 180,
        'wrap-attributes' => false,
        'break-before-br' => false,
    );

    $buffer = tidy_parse_string($buffer, $options, 'utf8');
    tidy_clean_repair($buffer);
    // Fix a tidy doctype bug
    $buffer = str_replace('<html lang="en" xmlns="http://www.w3.org/1999/xhtml">', '<!DOCTYPE HTML>', $buffer);
于 2011-06-26T14:26:23.220 回答
2

如果您使用Haml作为您的 nanoc 过滤器,您的 html 将自动打印漂亮。您可以将 html5 输出设置为选项。

于 2010-04-26T13:24:07.250 回答