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