--- 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)` | подчеркнутый | | Зачеркнутый | `~~т~~` | `` | `code(t)` | моноширинный |
| Ссылка | `[т](https://…)` | `` | `link(t, url)` | ссылка |
| Почта, телефон | `[т](mailto:…)`, `[т](tel:…)` | `` | `link(t, url)` | ссылка |
| Упоминание | `[т](tg://user?id=…)` | `` | `mention(member)`, `{{ member }}` | ссылка |
| Кастомный эмодзи | `` | `` | `custom_emoji(id, запасной)` | так же |
| Дата у зрителя | `` | `` | `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)` | раскрывающаяся цитата |
| Выноска | — | `