2012-11-26 118 views
21

如何在Jinja2參數列表聲明中添加註釋?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 -%} 

回答

46

的Jinja2有一個{{ ... }}語句中的不支持。您只能使用以外的以外的語句,然後只能使用{# .. #}## comment

  • {# .. #}只是針對禁用模板部分或添加評論以外的其他Jinja2的語法。你不能嵌套這些。
  • # statement相當於{% statement %},如果是line statements are enabled and so configured
  • ## comment僅在啓用了行語句的情況下才起作用,此時它被視爲評論。

一般來說,在Jinja語句之外,使用目標語言中的註釋來代替;例如<!-- comment -->當生成XML等

+2

外部評論看起來不是那麼漂亮在我的情況下:( – kimstik

+0

「'{#..#}'只用于禁用模板的一部分」 - 不符合當前的文檔,其中它也被用作'{#a comment#}' – timss

+1

@timss:在這個問題的上下文中,這個句子應該被讀*,其中OP在塊中使用了'{#comment 3#}'是的, '{#...#}'用於評論,包括註釋(禁用)模板的一部分。 –