--- url: /templates/advanced.md description: >- Расширенное руководство по шаблонному движку Astral Moderation — синтаксис, выражения, типы, теги, функции, разметка, квоты и ошибки. --- # Расширенное руководство

Здесь язык шаблонов описан целиком: как устроены выражения, какие есть теги и функции, как движок приводит типы и какие у него ограничения. Раздел пригодится, когда простых переменных и условий уже мало.

::: tip Сначала — основы Если вы только начинаете, пройдите раздел [Новичкам](../beginners/). Там те же вещи объяснены проще и медленнее. ::: ## Как движок выполняет шаблон { #pipeline } 1. **Проверка.** При сохранении движок разбирает шаблон и сообщает об ошибках со строкой и столбцом. Разобранный шаблон бот держит готовым, чтобы не разбирать его при каждом вызове. 2. **Выполнение.** Когда нужно отправить сообщение, движок идет по шаблону сверху вниз: текст копирует как есть, выражения в `{{ }}` вычисляет и подставляет, теги в `{% %}` выполняет. 3. **Разметка.** Получается строка в Markdown или HTML. Значения из данных при подстановке экранируются, чтобы символы разметки из имени участника не сломали сообщение. 4. **Отправка.** В режиме Rich Telegram сам разбирает разметку. В режиме Text бот переводит ее в классический формат и упрощает блоки. Движок выполняет шаблоны в изолированной «песочнице»: шаблон видит только данные своего чата, не может обратиться к интернету (кроме [данных Astral](../astral)) и ограничен [квотами](./limits), чтобы один шаблон не мог замедлить бота. ## Разделы { #sections }
Островки кода Вывод, теги, комментарии, контроль пробелов, литералы. Выражения и операторы Арифметика, сравнения, логика, Элвис, тернарный оператор, тесты, приоритеты. Типы и конвертация Строки, числа, списки, карты, даты, Undefined и строгий режим. Теги set, if, for, macro, include, run и другие. Функции Строки, числа, списки, даты, кнопки, разметка и медиа. Rich-сообщения Весь каталог разметки Telegram, режимы Rich и Text, экранирование. Квоты и ограничения Сколько шагов, циклов, обращений к хранилищам и отправок можно сделать. Ошибки Все коды ошибок и предупреждений и что с ними делать.