Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
消除HTML中由于模板引擎而产生的空行的最佳实践_Html_Template Engine_Minify - Fatal编程技术网

消除HTML中由于模板引擎而产生的空行的最佳实践

消除HTML中由于模板引擎而产生的空行的最佳实践,html,template-engine,minify,Html,Template Engine,Minify,在我看来,HTML源文件中的空行,尤其是顶部的空行看起来不整洁 通用模板代码(在本例中为Jinja2)可能如下所示: {% block header %} {% include "templates/partials/something_header.html" %} {% endblock header %} {% block body %} {% include "templates/partials/something_body.html" %} {% endblock body

在我看来,HTML源文件中的空行,尤其是顶部的空行看起来不整洁

通用模板代码(在本例中为Jinja2)可能如下所示:

{% block header %}

{% include "templates/partials/something_header.html" %}

{% endblock header %}

{% block body %}

{% include "templates/partials/something_body.html" %}

{% endblock body %}

{% block footer %}

{% include "templates/partials/something_footer.html" %}

{% endblock footer %}
现在,即使不添加缩进问题以使上述内容更具表现力,由于模板代码中有2个回车,它已经产生了生成2个空行的不利影响:

.
.
<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv=....

我最初的问题有点像是“我知道这是可以做到的,但还有别的办法吗?”

感谢David和Lajos的反馈,确认从模板引擎生成的HTML的后处理是减少不需要的空行和间距的最常见方法

Lajos还提出了一个概念,即保持每个模板本身的“干净”和“正确”版本,开发人员可以在不受干扰的情况下使用干净的模板代码工作,并且在进行任何修改后,文件的另一个版本将被重影写入,但重新格式化后,从中生成HTML实际上会生成干净的HTML,而不会由于模板化而产生任何不需要的工件


虽然我倾向于使用通用的后处理方法,并将任何此类HTML清理与CSS/JS的组合和缩小等联系起来,但在某些情况下,Lajos的实现肯定是有益的(即,如果您在模板阶段之外没有/不应该拥有控制权)

>记录:如果删除模板文件中的空白行会发生什么?当在源代码的人类可读性和结果的人类可读性之间进行平衡时,我希望源代码的人类可读性。如果HTML不是人性化的,但仍然正确,浏览器就不会有问题。但是如果原始的源代码不是人类友好的,那么它将更加难以支持。因此,你可以通过移除空白行来解决你的问题,但是这样你就引入了一个新的问题,因为它对人类来说是不可读的。如果您不需要这些空行用于功能目的,只是为了可读性,那么您可以编写可读文件,然后实现一个清理模板的工具,您可以使用该工具生成html,因此您将有3个层:1。用户可见的层(由于该工具,该层将可读)2。中间层,你有你的清洁模板3。以及生成的整洁的HTML。希望这有帮助。@Lajos,添加了替代模板代码,以防止生成的源代码中出现空行。关于清理HTML的后处理,我在问题中提到了这一点,但我想知道模板引擎的大多数用户是否实现了这样一个过程,是使用难读的模板代码还是处理多余的行。我最后的评论倾向于解决这两个问题,请再次阅读。
{% block header %}{% include "templates/partials/grid_header.html" %}{% endblock header %}

{% block body %}

...