如何删除标记后的换行符

时间:2014-10-27 08:51:47

标签: django templates formatting pretty-print

我使用Django模板系统来进行代码生成(不仅适用于HTML)。我在某种程度上受到django模板中冗余换行的困扰。

这是一个例子。模板如下:

// something
    {% for element in elements %}
      Element: {{ element.name }},
    {% endfor %}
// something else

渲染的输出将是:

// something

      Element: foo

      Element: bar

// something else

预期的渲染输出应为:

// something
      Element: foo
      Element: bar
// something else

用Google搜索后,我知道我可以使用{% spaceless %}删除渲染输出中的任何空格。它对HTML非常有用,但不适用于其他语言。我目前的解决方案是在标记之后添加一个特殊字符串,并在输出中用空字符串替换它们。

在标记后删除换行符有什么更好的解决方案吗?

3 个答案:

答案 0 :(得分:1)

对于您的生产环境,您可能会考虑缩小html以获得更高的性能。例如,使用https://pypi.python.org/pypi/django-htmlmin

如果您只对美学感兴趣,那么e-nouri所指出的.strip函数可能是您最好的答案。

答案 1 :(得分:0)

您可以在属性上使用.strip来删除/修剪。

// something
    {% for element in elements %}
      Element: {{ element.name.strip }},
    {% endfor %}
// something else

答案 2 :(得分:0)

代码中的换行符并不重要,但是当你把所有东西放在一行中时,你可以避免它们,这看起来不再那么好了:

{% for element in elements %}Element: {{ element.name.strip }},{% endfor %}