通缉
在 Linux 下运行的命令行 HTML5 美化器。
输入
乱码,丑陋的 HTML5 代码。可能是多个模板的结果。你不爱它,它不爱你。
输出
纯美。代码很好地缩进,有足够的换行符,关心它的空格。您希望直接在您的网站上显示代码,而不是在网络浏览器中查看它。
嫌疑人
- tidy做的太多了(哎呀,它改变了我的文档类型!),它不适用于 HTML5。也许有办法让它合作而不改变任何东西?
- vim做的太少了。它只是缩进。我希望程序添加和删除换行符,并使用标签内的空格。
在 Linux 下运行的命令行 HTML5 美化器。
乱码,丑陋的 HTML5 代码。可能是多个模板的结果。你不爱它,它不爱你。
纯美。代码很好地缩进,有足够的换行符,关心它的空格。您希望直接在您的网站上显示代码,而不是在网络浏览器中查看它。
HTML Tidy 由 w3c 分叉,现在支持 HTML5 验证。
我怀疑 tidy 可以使用正确的命令行参数。
http://tidy.sourceforge.net/docs/quickref.html
您可以指定任意 doctype 并添加新的块、内联和空标签,并打开和关闭许多 tidy 的清理选项。
根据您希望它“美化”的内容,您可能会得到不错的结果。它可能无法做一些更高级的事情,比如重写 html 内容以消除虚假元素或组合它们,如果它不能识别它们。
从一个现场网站复制,我使用 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);
如果您使用Haml作为您的 nanoc 过滤器,您的 html 将自动打印漂亮。您可以将 html5 输出设置为选项。