以下内容是从我使用 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);
$buffer = str_replace('<html lang="en" xmlns="http://www.w3.org/1999/xhtml">', '<!DOCTYPE HTML>', $buffer);
echo '<!doctype html>'; (echo "<?xml version='1.0' ?>"; tail -n +2 < index.html) | xmllint --format - | sed -re 's/(<script[^>]*)\/>/\1><\/script>/g' | tail -n+2
。这应该适用于第一行有doctype但没有xml-prolog的输入文档,并以相同的样式输出。 - Janus Troelsen