通缉:命令行HTML5美化

时间:2010-04-17 07:41:50

标签: html5 command-line indentation pretty-print

通缉

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

输入

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

输出

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

嫌疑人

  • 整洁做得太多了(哎呀,它会改变我的doctype!),而且它对HTML5不起作用。也许有办法让它合作而不是改变任何东西
  • vim 做得太少了。它只是缩进。我希望程序添加和删除换行符,并使用标签内的空格。

死或活!

4 个答案:

答案 0 :(得分:26)

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

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

答案 1 :(得分:19)

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

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

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

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

答案 2 :(得分: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);

答案 3 :(得分:2)

如果您使用Haml作为nanoc-filter,您的html将会自动打印出来。您可以将html5输出设置为选项。