Оформить текст легко, а сообщения ботов ломает экранирование.
Предпросмотр примерный: он показывает смысл разметки, а не то, как её нарисует конкретное приложение. Шрифты, цвета и отступы везде свои, а часть возможностей зависит от версии.
| Действие | Синтаксис | Примечание |
|---|---|---|
| B | *bold* |
Жирный - одна звёздочка в MarkdownV2 |
| I | _italic_ |
Курсив |
| U | __underline__ |
Подчёркнутый |
| S | ~strikethrough~ |
Зачёркнутый |
| Spoiler | ||spoiler|| |
Скрыто до нажатия |
| Code | `code` |
Код в строке |
| Quote | >quoted |
Цитата |
| Code block | ```python
code
``` |
Блок pre, язык по желанию |
| Link | [text](https://example.com) |
Ссылка |
| Mention | [name](tg://user?id=123) |
Упомянуть пользователя по id |
| Escape | *not italic* |
Ставит обратную косую черту перед _ * [ ] и другими символами, чтобы они оставались видны как есть, а не превращались в разметку. Выделите текст или просто поставьте курсор на строку |
Телефон собирает файл приложения - поэтому это дольше обычной загрузки.
Ищите этот значок: TelegramВ MarkdownV2 зарезервированы восемнадцать символов, среди них точка, дефис и восклицательный знак, которыми полон обычный текст. Если хоть один не экранирован, Telegram отклоняет всё сообщение с ошибкой разбора, а бот, который не проверяет ответ, просто молчит. Выделите обычный текст и нажмите кнопку экранирования.
MarkdownV2 пришёл на смену старому режиму Markdown, который мог прочитать один и тот же текст по-разному. Новые правила строгие: любой символ, который может что-то значить, нужно экранировать там, где он ничего не значит.
Сам синтаксис короткий: жирный одной звёздочкой, курсив одним подчёркиванием, подчёркивание двумя, зачёркивание тильдой, спойлер двумя вертикальными чертами, код обратными кавычками. Зарезервировано 18 символов: _ * [ ] ( ) ~ ` > # + - = | { } . !
Скорее всего, Telegram вернул ошибку разбора, а код её не проверяет. Обычно виноваты неэкранированные точка или дефис, и запись ответа API в лог сразу это покажет.
Там правила мягче: экранируются только обратная кавычка и обратный слеш. Поэтому кнопку экранирования применяйте к тексту, а не ко всему сообщению с кодом.
Тогда экранирование не нужно: у приложения своё меню форматирования. MarkdownV2 нужен для сообщений, которые отправляются через Bot API.