Jinja2内联评论

kim*_*tik 48 python macros comments jinja2

如何在Jinja2参数列表声明中添加注释?

我尝试的所有内容都会出错: jinja2.exceptions.TemplateSyntaxError:unexpected char u'#'

{{ Switch('var',
    [('1', 'foo'),    #  comment 1
     ('2', 'bar'),    ## comment 2
     ('3', 'rum'),    {# comment 3 #}
     ]) }}


{% macro Switch(var, caselist) %}
    {% for case, action in caselist%}
        CMP  {{var}} {{case}} 
        JNE  {{LABEL}}
        {{action}}
        JMP  {{LABELF}}
{{LABEL}}:  NOP
    {%- endfor %}
{{LABELF}}: NOP
{%- endmacro -%}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 100

Jinja2在{{ ... }}声明中不支持评论.您只能这些语句之外使用注释,然后才能使用{# .. #}## comment.

  • {# .. #}仅用于禁用模板的一部分或其他Jinja2语法之外添加注释.你不能嵌套这些.
  • # statement{% statement %}如果行语句被启用并且如此配置,则相当于.
  • ## comment 仅在启用行语句时才有效,此时它被视为注释.

通常,在Jinja语句之外,请使用目标语言中的注释; 例如,<!-- comment -->在生成XML等时

  • 在我的情况下,外部评论看起来不那么漂亮:( (2认同)
  • “`{#..#}`仅用于禁用模板的一部分” –与当前文档不匹配,在当前文档中它也用作“ {#a comment#}”。 (2认同)
  • @timss:应该在这个问题的上下文中*阅读该句子,其中OP在一个块内使用了{{comment 3#}}。是的,`{#...#}`用于注释,包括注释掉(禁用)模板的一部分。 (2认同)

小智 12

我试图向 Martijn Pieters 添加评论。

{% .. %}={# .. #}

{{ .. }}= {# .. #} (同上)


Dan*_*off 6

现在 Jinja2 有一个评论声明:

{% comment %}

    <html code/>
    {% some other statements %}
    {{ some.values }}

{% endcomment %}
Run Code Online (Sandbox Code Playgroud)

  • 由于某种原因,我仍然没有 {% comment %},但后来我使用了: {% if False %} 代替,我猜这是相同的想法。 (3认同)
  • jinja2.exceptions.TemplateSyntaxError:遇到未知标签“评论”。 (3认同)