Форматирование текста
Текст в Пачке форматируется через markdown. Один и тот же набор конструкций работает везде, где вы передаёте текст как markdown.
Где применяется
- Сообщения — поле
contentметода POSTНовое сообщение и PUTРедактирование сообщения интерпретируется как markdown. Альтернатива — структурная параtext+markup, тогда markdown не разбирается. - Входящие вебхуки — текст, который шаблонизатор подставляет в сообщение, см. Входящие вебхуки.
- Блоки форм — поле
textблокаmarkdown, см. Блоки представления.
Движок единый, поэтому набор конструкций одинаков для всех трёх случаев.
Строчные конструкции
| Элемент | Синтаксис | Результат |
|---|---|---|
| Жирный | **это жирный текст** или __это жирный текст__ | это жирный текст |
| Курсив | *это курсивный текст* или _это курсивный текст_ | это курсивный текст |
| Зачеркнутый | ~~это зачеркнутый текст~~ | |
| Ссылка | [текст ссылки](https://www.google.com) | текст ссылки |
| Строчный код | `код в тексте` | код в тексте |
| Ссылка без разметки | https://example.com | https://example.com |
| Изображение |  | ссылка с текстом «подпись» |
Блок кода — конструкция из нескольких строк, она разобрана отдельно ниже.
Блоки кода
Открывающий и закрывающий заборы из трёх обратных кавычек должны стоять на отдельных строках. Если написать заборы и текст в одну строку, блок кода не сформируется.
Однострочный вариант вида ```строка кода``` блоком кода не становится. Текст после открывающего забора Пачка считает названием языка, а закрывающий забор на той же строке остаётся обычным текстом.
Язык подсветки
Язык для подсветки синтаксиса указывается сразу после открывающего забора, без пробела. Содержимое начинается со следующей строки.
Если язык не указать, Пачка определяет его автоматически по содержимому. На кириллическом тексте автоопределение почти всегда даёт 1C, поэтому для обычного текста без кода указывайте язык text — это убирает ошибочную пометку.
Выбрать язык в интерфейсе формы нельзя, он берётся только из текста.
Заголовки
Строка, начинающаяся с #, распознаётся как заголовок: решётки убираются, а текст становится жирным. Отдельного стиля заголовка у сообщения нет, поэтому # Итоги, ## Итоги и **Итоги** дают один и тот же результат.
Что не поддерживается
Эти конструкции в тексте сообщений, вебхуках и блоках форм не распознаются и остаются обычным текстом (символы -, 1. и > отображаются как есть):
- маркированные и нумерованные списки
- цитаты
- таблицы
Разметка в исходящих вебхуках
Обратное преобразование работает шире, чем разбор. Когда сотрудник пишет сообщение в интерфейсе, оно хранится структурно, а в поле content исходящего вебхука Пачка собирает из этой структуры markdown. Помимо строчных конструкций там появляются цитаты и списки — те самые, которые в обратную сторону не разбираются.
То есть бот получит в content строки с > , - и 1. , даже если сам такой текст отправить не смог бы. Учитывайте это, если разбираете content на своей стороне.
Внутри такой строки строчные конструкции работают: в - **важно** маркер списка останется на месте, а слово станет жирным.
Исключение — подчёркивание. У него нет markdown-синтаксиса, поэтому подчёркнутый в интерфейсе текст приходит в content обычным, и отличить его от неоформленного нельзя.
Если нужен богатый markdown с таблицами, чек-листами, блоками diff и диаграммами mermaid, прикрепите его .md-файлом — Пачка отрендерит файл оформленной карточкой. Подробнее — в разделе Оформление ответов.