0
私はそれをレンダリングするためにネストされた構造と再帰的なマクロを持っています。ただし、すべての終了タグの前に余分な空行があります。空の行を削除すると、1つの連続したブロックがレンダリングされます。jinja2:再帰的なマクロを正しくフォーマットする方法
データは、テンプレートが期待される結果が</ul>
前に、この余分な空白を持つべきではありませんので、
{% 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 -%}
のようなものですので、
name='...'
list
a
a
b
name='...'
list
b
b
a
のような形をしています。
<ul name="...">
<li a="a"/>
<li a="a"/>
<li b="b"/>
<ul name="...">
<li b="b"/>
<li b="b"/>
</ul>
<li a="a"/>
</ul>