Jinja2 commentaires en ligne

Comment puis-je mettre des commentaires dans la déclaration Jinja2 de la liste d'arguments ?

Tout ce que j'ai essayé donne une erreur: jinja2.exception.TemplateSyntaxError: inattendu 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 -%}
29
demandé sur Martijn Pieters 2012-11-26 13:47:53

1 réponses

Jinja2 n'a pas de support pour les commentaires dans un {{ ... }} déclaration. Vous ne pouvez utiliser les commentaires dehors de telles déclarations, et alors seulement avec {# .. #} ou ## comment.

  • {# .. #} est uniquement destiné aux désactiver partie d'un modèle ou d'ajouter des commentaires dehors d'une autre syntaxe Jinja2. Vous ne pouvez pas imbriquer ces.
  • # statement est équivalent à {% statement %}, si instructions de ligne sont activées et donc configuré.
  • ## comment ne fonctionne que si les instructions de ligne sont activées, à partir de quel moment elles sont considérées comme un commentaire.

généralement, en dehors des déclarations Jinja, utilisez plutôt des commentaires dans la langue cible; par exemple <!-- comment --> lors de la génération de XML, etc.

59
répondu Martijn Pieters 2017-11-22 07:55:21