为方便起见,我在模板中使用了一些格式(换行符,间距等)例如:
{% extends "base.html" %}
{% load tabs %}
{% block content %}
{% block navigation %}
<ul id="user_admin_tabs_list">
<li><a href="{% url user_admin.views.profile %}" class=
{% ifactivetab "user_admin_tabs" "profile" %}
"user_admin_tabs_active_tab"
{% else %}
"user_admin_tabs_inactive_tab"
{% endifactivetab %}>Профиль</a></li>
...
但这会导致“乱七八糟”的html输出。像这样:
<ul id="user_admin_tabs_list">
<li><a href="/accounts/profile/profile/" class=
"user_admin_tabs_active_tab"
>Профиль</a></li>
<li><a href="/accounts/profile/shops/" class=
"user_admin_tabs_inactive_tab"
>Магазины</a></li>
<li><a href="/accounts/profile/billing/" class=
"user_admin_tabs_inactive_tab"
>Биллинг</a></li>
<li><a href="/accounts/profile/settings/" class=
"user_admin_tabs_inactive_tab"
>Настройки</a></li>
</ul>
因此,模板的可读性导致输出html的可读性差。
这个问题的决定是什么?
答案 0 :(得分:2)
老实说,我不担心模板引擎的输出。您将要编辑模板而不是输出,因此为了可维护性,只有模板 HTML结构良好才真正重要。当然,如果有人在您的网页上使用“查看来源”,他们会看到一堆乱七八糟的HTML,但这并不重要。
也就是说,您可以尝试使用Django的spaceless
tag来获得更漂亮的HTML输出。
修改强>
对于这种特定情况,您可以将ifactivetab
标记内联:
<li><a href="{% url user_admin.views.profile %}" class="{% if activetab "user_admin_tabs" "profile" %}user_admin_tabs_active_tab{% else %}user_admin_tabs_inactive_tab{% endifactivetab %}">Профиль</a></li>
答案 1 :(得分:1)
我过去曾想过这个。
您最好的选择IMO是使用tidy
之类的内容对输出进行后期处理。它是用C语言编写的,因此速度非常快,并且不会产生很大的性能损失。它是开发中的一个选项,但在高流量站点上不是您想要的。
您需要将其配置为仅缩进代码。
副手,我认为它可能会尝试清理无效标记,这会让你在启用/禁用它时挠头。需要注意的事项,因为文档的结构可能会因此而改变。
如果你是“查看源代码”,那就太好了,但你最好还是使用firebug检查你的输出 - 如果这是动机。