Jinja2 内嵌评论

问题描述 投票:0回答:4

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

我尝试过的所有方法都会出错: jinja2.exceptions.TemplateSyntaxError:意外的字符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 用作汇编器的宏预处理器。

python macros jinja2 comments
4个回答
221
投票

Jinja2 不支持在

{{ ... }}
声明中发表评论。您只能在此类语句的 outside 中使用注释,然后只能使用
{# .. #}
## comment

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

一般来说,在 Jinja 语句之外,使用目标语言的注释来代替;例如

<!-- comment -->
生成 XML 等时。


27
投票

抱歉,此声明已弃用!

现在Jinja2有评论声明:

{% comment %}

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

{% endcomment %}

12
投票

我试图向 Martijn Pieters 添加评论。

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

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


1
投票
{#
comment with text and disable JINJA Execution
#}

© www.soinside.com 2019 - 2024. All rights reserved.