Код: Выделить всё
A
{%- if flag == "0" %}
X
{%- elif flag == "1" %}
Y
{%- endif %}
B
Это означает, что я ожидаю для flag=0,1,2 следующих результатов:
Код: Выделить всё
A
X
B
Код: Выделить всё
A
Y
B
Код: Выделить всё
A
B
также может состоять из нескольких строк.
Я ищу общий синтаксис, который удовлетворяет моим вышеупомянутым ожиданиям для любых A,X,Y,B< /code>,
т.е. если я редактирую содержимое полей A,X,Y,B, я не хочу трогать синтаксис.
Приведенный выше синтаксис не соответствует этому требованию, если поля A,B,X,Y содержат символы новой строки,
например. если я изменю его на
Код: Выделить всё
a
{%- if flag == "0" %}
x
{%- elif flag == "1" %}
y
y
{%- endif %}
b
так и будет произвести для flag=1 вывод
Код: Выделить всё
a
y
y
b
Код: Выделить всё
a
y
y
b
Поэтому я ищу < em>общий синтаксис шаблона следующего вида
Код: Выделить всё
A
{????}
X
{????}
Y
{????}
B
Что я пробовал до сих пор:
Игра с исходным шаблоном (переключение 6 знаков минус и добавление нескольких новых строк в 4 позиции) Я сгенерировал 2^10 = 1024 возможных шаблонов.
10 из них работают только для A,B,X,Y без новых строк , с символами новой строки ни один из них этого не делает.
Проблема, по-видимому, заключается в том, что использование синтаксиса {%- после Y удаляет новую строку перед { (желательно), но в то же время удаляет конечные пробелы Y (не требуется)
Учитывая заголовок вопроса, я знаю, что его нельзя четко различить, если Новая строка «вызвана» тегом или статическим текстом, но это лучшее, что я мог придумать.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ve-newline