--- url: /templates/advanced/rich.md description: >- Rich-сообщения Telegram в шаблонах — режимы Rich и Text, синтаксис Markdown и HTML, полный каталог строчной и блочной разметки, медиа, экранирование и лимиты. --- # Rich-сообщения и разметка

С июня 2026 года Telegram поддерживает rich-сообщения: заголовки, таблицы, списки, сворачиваемые блоки, медиа внутри текста и кнопки между абзацами.

## Режим и синтаксис { #mode } У каждого шаблона есть **режим** и **синтаксис**. Значения по умолчанию задаются для чата в разделе **«Общие»**, у отдельного шаблона их можно поменять в [редакторе](../editor#mode). | | Rich (по умолчанию) | Text | |---|---|---| | Что это | Rich-сообщение Telegram | Классическое сообщение | | Длина | До 32 768 символов | До 4096 символов, подпись к медиа — до 1024 | | Элементы | Все из каталога ниже | Строчное форматирование, цитаты, блоки кода, одно медиа. Остальное [упрощается](#text-mode) | | Кнопки | Под сообщением и внутри текста | Только под сообщением | | Синтаксис | Что это | |---|---| | **Markdown** (по умолчанию) | Rich Markdown Telegram: совместим с GitHub Flavored Markdown и допускает HTML-вставки | | **HTML** | Rich HTML Telegram: теги из каталога ниже. Неизвестный тег — ошибка `invalid_markup` | ::: info Где режим не выбирается Некоторые тексты Telegram всегда показывает без разметки: всплывающие уведомления на нажатие кнопки (до 200 символов), описания команд в меню, надписи на кнопках, вопросы и варианты опросов. ::: ## Порядок обработки { #order } 1. Движок выполняет островки `{{ }}`, `{% %}`, `{# #}` и получает строку разметки. 2. Значения из данных при подстановке экранируются под синтаксис шаблона. 3. В режиме Rich строка уходит в Telegram, и он сам разбирает разметку. В режиме Text бот переводит ее в классический формат. Поэтому в статическом тексте шаблона вы пишете разметку свободно, а данные подставляете через `{{ }}` или [функции разметки](./functions#markup). ## Строчная разметка { #inline } | Элемент | Markdown | HTML | Функция | В режиме Text | |---|---|---|---|---| | Жирный | `**т**`, `__т__` | ``, `` | `bold(t)` | жирный | | Курсив | `*т*`, `_т_` | ``, `` | `italic(t)` | курсив | | Подчеркнутый | `т` | ``, `` | `underline(t)` | подчеркнутый | | Зачеркнутый | `~~т~~` | ``, ``, `` | `strike(t)` | зачеркнутый | | Спойлер | `\|\|т\|\|` | `` | `spoiler(t)` | спойлер | | Маркер | `==т==` | `` | `mark(t)` | жирный | | Верхний индекс | `т` | `` | `sup(t)` | как есть | | Нижний индекс | `т` | `` | `sub(t)` | как есть | | Моноширинный | `` `т` `` | `` | `code(t)` | моноширинный | | Ссылка | `[т](https://…)` | `` | `link(t, url)` | ссылка | | Почта, телефон | `[т](mailto:…)`, `[т](tel:…)` | `` | `link(t, url)` | ссылка | | Упоминание | `[т](tg://user?id=…)` | `` | `mention(member)`, `{{ member }}` | ссылка | | Кастомный эмодзи | `![](tg://emoji?id=…)` | `` | `custom_emoji(id, запасной)` | так же | | Дата у зрителя | `![текст](tg://time?unix=…&format=wDT)` | `` | `datetime(value, format)` | так же | | Формула | `$x^2$` | `` | `math(expr)` | моноширинный исходник | | Сноска | `текст[^1]` и `[^1]: …` | `` и `` | — | «\[1]» и тексты сносок в конце | | Якорь | ``, `[т](#x)` | то же | `anchor(name)` | пропадает | | Кнопка в строке | `` | `` | `inline_button(…)` | уходит в клавиатуру | ::: warning `__текст__` — жирный В Telegram `__текст__` делает текст жирным, а не подчеркнутым. Для подчеркивания пишите `…`. Редактор подсказывает такие места. ::: ## Блоки { #blocks } | Элемент | Markdown | HTML | Функция | В режиме Text | |---|---|---|---|---| | Заголовок 1–6 | `#` … `######` | `

` … `

` | `heading(t, size)` | жирная строка | | Абзац | пустая строка | `

` | — | абзац | | Блок кода | ` ```lang ` | `

` | `pre(t, lang)` | блок кода |
| Цитата | `> т` | `
…автор` | `quote(t, credit)` | цитата | | Раскрывающаяся цитата | — | `
` | `quote(t, credit, true)` | раскрывающаяся цитата | | Выноска | — | `