通缉
在Linux下运行的命令行HTML5美化器。
输入项
乱码,难看的HTML5代码。可能是多个模板的结果。你不爱它,它不爱你。
输出量
纯净的美丽。该代码很好地缩进,具有足够的换行符,照顾它的空白。与其在Web浏览器中查看,不如直接在您的网站上显示代码。
嫌疑犯
- 整洁的功能太多了(哎呀,它改变了我的doctype!),并且在HTML5中效果不佳。也许有一种方法可以使其合作而不改变任何东西?
- vim太少了。它只是缩进。我希望程序添加和删除换行符,并在标签内使用空格。
在Linux下运行的命令行HTML5美化器。
乱码,难看的HTML5代码。可能是多个模板的结果。你不爱它,它不爱你。
纯净的美丽。该代码很好地缩进,具有足够的换行符,照顾它的空白。与其在Web浏览器中查看,不如直接在您的网站上显示代码。
xmllint --format
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
。这应该与第1行上doctype的输入文档一起使用,但不支持xml-prolog。输出相同的样式。
Answers:
HTML Tidy已被w3c分叉,现在支持HTML5验证。
apt-get install tidy
使用Debian
我怀疑使用正确的命令行参数可以使代码整洁。
http://tidy.sourceforge.net/docs/quickref.html
您可以指定一个任意doctype并添加新的block,inline和empty标签,并打开和关闭大量整洁的清洁选项。
根据您希望它“美化”的内容,您可能会得到不错的结果。如果它无法识别虚假元素,则它可能无法执行一些更高级的操作,例如重写html内容以消除虚假元素或将其组合。
tidy -as-xhtml --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --doctype "<!DOCTYPE HTML>" --break-before-br yes --sort-attributes alpha --vertical-space yes
(免责声明-我没有使用html5,并且我只是通过猜测哪个是阻止/内联方式从w3schools.com/html5/html5_reference.asp复制了几个新标签到列表中,所以请进行适当调整。)
--doctype "<!DOCTYPE HTML>"
且--sort-attributes alpha
由于某些原因而无法正常工作
由于使用了此代码段(我使用的是PHP,但使用的任何语言的选项和逻辑都相同),所以我从一个真实的网站上复制了我使用的HTML5,该HTML5在所有页面上均被验证为正确的HTML5:
$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);
<audio>
使用使用空<source>
标签的标签,我发现您还需要以下配置选项:'new-empty-tags' => 'source'