由于模板引擎消除HTML中的空行的最佳做法

时间:2013-09-14 11:55:47

标签: 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 %}

{% block footer %}

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

{% endblock footer %}

现在,如果没有添加缩进问题以使上述更容易呈现,它已经产生了由于模板代码中的2个回车而产生2个空行的不利影响:

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

虽然我可以在这种特殊情况下使用缩小器/后处理器,但我想知道其他人如何做以保持模板代码在眼睛上容易,同时防止不必要的空白行?

编辑:要消除生成的源代码头部的空白行,上面的模板代码示例如下所示(更不易读):

{% block header %}{% include "templates/partials/grid_header.html" %}{% endblock header %}

{% block body %}

...

1 个答案:

答案 0 :(得分:0)

我原来的问题有点像“我知道可以做到这一点,但还有另外一种方法吗?”。

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

Lajos还提出了维护每个模板本身的“干净”和“正确”版本的概念,开发人员可以使用干净的模板代码进行无干扰工作,并且在进行任何修改时,该文件的另一个版本将被重写,但重新格式化,以便从中生成HTML实际上会产生干净的HTML,而不会因模板而产生任何不需要的工件。

虽然我倾向于使用常见的后处理方法并将任何此类清理链接以及组合和缩小CSS / JS等链接,但是有些情况下Lajos的实现肯定会有益(即,如果你不喜欢) t /不应该在模板阶段之外控制)。