2016-10-26 6 views
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> 

答えて

0

神社はなぜ「もし」のエンディングのためにと神社の宣言「を」1行にステートメントを移動しないlinespacingを追跡しているので?

{% 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 -%} 
関連する問題