Операции над переменными

Значение переменной внутри документа задается командой «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 - отображение вне цикла

Предыдущая
Следующая