我有一个嵌套结构和一个递归宏来呈现它。但是在所有结束标记之前有一个额外的空行。如何删除空行以便呈现一个连续的块?
数据的形式如此
name='...'
list
a
a
b
name='...'
list
b
b
a
模板就像这样
{% macro list(item) -%}
<ul name="{{ item.name }}">
{% for item in item.list -%}
{% if item.a -%}
<li a="{{ item.a }}"/>
{% elif item.b -%}
<li b="{{ item.a }}">
{% item.name -%}
{{- list(item) }}
{% endif -%}
{%- endfor %}
</ul>
{% endmacro -%}
预期结果不应该在</ul>
之前有这个额外的空格。
<ul name="...">
<li a="a"/>
<li a="a"/>
<li b="b"/>
<ul name="...">
<li b="b"/>
<li b="b"/>
</ul>
<li a="a"/>
</ul>
答案 0 :(得分:0)
由于Jinja正在跟踪行间距,为什么不将语句移动到一行以结束&#34;如果&#34; &#34; for&#34; jinja声明?
{% macro list(item) -%}
<ul name="{{ item.name }}">
{% for item in item.list -%}
{% if item.a -%}
<li a="{{ item.a }}"/>
{% elif item.b -%}
<li b="{{ item.a }}">
{% item.name -%}
{{- list(item) }}{% endif -%}{%- endfor %}
</ul>
{% endmacro -%}