85

如何在 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 -%}

在我的例子中,Jinja2 被用作汇编程序的宏预处理器。

4

3 回答 3

167

Jinja2 不支持在{{ ... }}声明中发表评论。您只能在此类语句之外使用注释,然后只能使用{# .. #}or ## comment

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

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

于 2012-11-26T09:53:53.587 回答
10

现在 Jinja2 有一个评论声明:

{% comment %}

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

{% endcomment %}
于 2020-12-14T12:50:13.090 回答
7

我试图向 Martijn Pieters 添加评论。

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

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

于 2020-02-26T16:39:43.060 回答