Операции над переменными
Значение переменной внутри документа задается командой «set».
Простая установка значения
{{ string_example }}
{% set string_example = "Привет, мир!" %}
{{ string_example }}
Результат:
Hello, world!
Привет, мир!
«set» работает только внутри документа. Если переменной с таким названием в проекте нет, она появится лишь в этом документе: в данных проекта и в других документах ее не будет. Если переменная в проекте есть, «set» меняет ее значение тоже только в этом документе — в данных проекта значение остается прежним.
{% set parrot_number = 38 %}
{{ parrot_number }}
Результат:
38
Значение в кавычках ("") становится текстом, без кавычек — числом.
Установка значения через переменные
{% set noahs_ark_capacity = species_number * 2 %}
{% set counter = counter + 1 %}
{% set full_title = document_type + document_name %}
Установка многострочного значения
Многострочное значение записывается между командами «set» и «endset» (такое значение всегда текстовое):
{% set variable_examples %}
{{ string_example }} - пример строки
{{ number_example }} - пример числа
{{ date_example }} - пример даты
{{ boolean_example }} - пример логического значения
Пример таблицы:
{{ table_example }}
{% endset %}
Теперь переменную можно вывести:
{{ variable_examples }}
Результат:
Привет, мир! - пример строки
-3.14159 - пример числа
16.04.2077 - пример даты
false - пример логического значения
Пример таблицы:
| Эта | Таблица |
|---|---|
| отображается | через |
| переменную | ! |
Использование фильтров
К устанавливаемому значению можно применить фильтры:
{% set shout = string_example | upper %}
{{ shout }}
Результат:
ПРИВЕТ, МИР!
{{ filter_ex1 }}
{% set filter_ex1 = filter_ex1 | upper_first %}
{{ filter_ex1 }}
Результат:
текст
Текст
Область действия
Значение, заданное через «set», действует до конца документа. Но если «set» стоит внутри цикла (подробнее см. «Циклы»), значение действует только внутри этого цикла.
{% set parrot_number = 38 %}
{% for n in list_1 %}
{% set parrot_number = parrot_number + 1 %}
{{ parrot_number }} - отображение в цикле
{% endfor %}
{{ parrot_number }} - отображение вне цикла
Результат:
39 - отображение в цикле
38 - отображение вне цикла