/ / Komentarze w wierszu Jinja2 - python, komentarze, jinja2

Komentarze wbudowane w Jinja2 - python, komentarze, jinja2

Jak mogę umieścić komentarze w deklaracji listy argumentów Jinja2?

Wszystko, co próbowałem, daje błąd: jinja2.exceptions.TemplateSyntaxError: nieoczekiwany znak 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 -%}

Odpowiedzi:

56 dla odpowiedzi № 1

Jinja2 nie obsługuje komentarzy w obrębie a {{ ... }} oświadczenie. Możesz używać tylko komentarzy na zewnątrz takich oświadczeń, a potem tylko z {# .. #} lub ## comment.

  • {# .. #} jest przeznaczony tylko dla wyłączanie fragment szablonu lub dodawanie komentarzy na zewnątrz innej składni Jinja2. Nie możesz ich zagnieździć.
  • # statement jest odpowiednikiem {% statement %}, gdyby instrukcje linii są włączone i tak skonfigurowane.
  • ## comment działa tylko wtedy, gdy włączone są instrukcje liniowe, w którym to momencie jest traktowany jako komentarz.

Ogólnie rzecz biorąc, poza wyrażeniami Jinja, zamiast tego używaj komentarzy w języku docelowym; np. <!-- comment --> podczas generowania XML itp.