Перейти к содержанию

Форматирование текста

В комментариях к задачам можно оформлять текст — выделять жирным, добавлять ссылки, создавать списки и многое другое. Для этого используется markdown: специальные символы вокруг текста задают форматирование.

1. Поддерживаемое форматирование

Поддерживаемые виды разметки и их доступность на платформах:

Синтаксис Результат Веб: лента Веб: чат iOS Android
**текст** Жирный + + + +
__текст__ Курсив + + + +
~~текст~~ Зачёркнутый + + + +
((текст)) Подчёркнутый + + + +
`текст` Код (моноширинный шрифт) + + + —
[текст](url) Именованная ссылка + + + +
# текст … ###### текст (до шести #) Заголовок — выделяется полужирным как акцент, размер шрифта не меняется + + — —
```...``` Блок кода (с фоном, моноширинный) + + ± ±
\| a \| b \|
\| --- \| --- \|
\| 1 \| 2 \|
Таблица с заголовком и рамкой. В ленте растягивается по ширине, в чате — с прокруткой. + + — —
#12345 Ссылка на задачу по номеру + + + +
@ + имя пользователя Упоминание пользователя (@-тег) + + + +
URL (https://...) Автоматическая кликабельная ссылка + + + +
Ссылка на Диск Открывает папку/файл Диска в превью + + — —
- текст Маркированный список + + — —
1. текст Нумерованный список. Пункты сохраняют исходные номера — например, 3. 4. 5. так и отображаются как 3. 4. 5., в том числе после отправки комментария. + + — —
--- (на отдельной строке) Горизонтальный разделитель + + — —
+++ (на отдельной строке, с 2.268.352) Спойлер — всё, что ниже первого +++ в комментарии, сворачивается в раскрываемый блок «Показать больше». Повторные +++ ниже первого отображаются как обычный текст (без вложенности). Старая обёртка [+][-] (прежний формат системных комментариев) больше не обрабатывается — если придёт из старой версии, отображается как обычный текст без ошибок. + + — —
Нажатие Enter Перенос строки + + + +

Обозначения: + — работает; — — не отображается, виден исходный текст вместе с символами разметки; ± — работает частично (на iOS и Android содержимое тройных обратных кавычек показывается моноширинным шрифтом, но без плашки-фона).

⚠️ Важно: __текст__ в 1Форме — это курсив, не жирный. Для жирного всегда используй **текст**.

Подсветка синтаксиса в блоках кода. Если сразу после открывающих тройных обратных кавычек указать язык (например, sql), блок кода в ленте и чате подсвечивается по синтаксису — при условии, что грамматика этого языка загружена. К ленте и чату подключены sql, csharp (C#, .NET) и json; язык указывается латиницей, регистр не важен — SQL и sql равнозначны. Без указания языка или для языка, грамматики которого нет, блок отображается как обычный моноширинный текст, без подсветки.

Подсветка приходит не сразу. Грамматики языков загружаются отдельными частями, независимо от содержимого ленты. Пока нужная грамматика не загружена, блок кода показывается обычным моноширинным текстом, а через мгновение оформляется. Обновлять страницу не нужно — это нормальное поведение, а не ошибка. Если подсветка не появилась вовсе, проверьте, что язык написан латиницей в тройных обратных кавычках.

Быстрая подстановка # к номеру задачи. Скопируйте номер задачи из шапки её карточки или из мобильной табличной формы (МТФ) и в течение 120 секунд вставьте в поле сообщения (комментарий, чат, соцсеть) — номер автоматически станет ссылкой на задачу вида #12345. Подстановка срабатывает только для номера из одних цифр и только при вставке в поле сообщения: в поиске, админке, текстовых ДП, а также при вставке текста с другими символами номер остаётся без изменений. Буфер обмена не меняется — # добавляется лишь в момент вставки.

Выбор задачи из списка по #. В веб-интерфейсе символ # в начале слова — в начале поля или после пробела — раскрывает под полем список объектов, как @ раскрывает список подписчиков. Пока после # ничего не набрано, показываются первые пять записей из «Недавних»; при наборе идёт поиск по введённому тексту, а строка списка несёт название объекта, его номер и категорию. Фильтр — одно слово: пробел его завершает и список закрывается, поэтому разметка заголовков (# текст) продолжает работать, а второй # список не открывает. Если после # набрать одни цифры, в выдачу попадают и закрытые задачи.

Выбор строки — щелчком мыши, клавишей Enter или Tab: подставляется #номер и курсор встаёт сразу за добавленным пробелом, чтобы следующий набранный символ не прилипал к ссылке. Стрелки ↑ и ↓ двигают подсветку, Esc закрывает список, не выходя из поля; пока список открыт, Enter выбирает строку, а не отправляет сообщение.

Жирный текст в ленте комментариев Курсив через __текст__ Зачёркнутый текст Подчёркнутый текст через ((текст)) Inline-код моноширинным шрифтом в плашке Кликабельная именованная ссылка Автоссылка #TaskId на задачу Установка связи +#TaskId с задачей


2. Ограничения и поддержка на платформах

В комментариях 1Формы не поддерживаются HTML-теги, встроенные изображения, цитаты, вложенные списки и курсив через одинарную звёздочку; на веб и мобильных клиентах набор отображаемых элементов различается.

  • HTML-теги (<br>, <b>, <p>, <div> и любые другие) — отображаются как обычный текст или игнорируются. Если нужно вставить угловую скобку <, она отобразится корректно — система автоматически её экранирует. Разметка из текста очищается перед показом; пример тега или атрибута в сообщении чата больше не ломает отображение остального текста — очищается только сам фрагмент, а переносы строк, ссылки и выделение сохраняются, как в ленте.
  • Изображения в тексте (![alt](url)) — вставить картинку в текст комментария нельзя, только как вложение.
  • Курсив через одинарную звёздочку (*текст*) — не работает. Используй __текст__.
  • Цитаты (> текст) — не поддерживаются ни на одном клиенте, символ > останется в тексте.
  • Вложенные списки — только один уровень. Пункт с отступом перед - не становится подпунктом: он выпадает из списка и разрывает его на два.
  • Текст в квадратных скобках «склеивается» со ссылкой, стоящей дальше в том же абзаце. Разбор ссылок жадный: открывающая [ ищет закрытие не рядом, а по первому ]( в абзаце — и всё между ними становится телом одной ссылки. Наблюдено на комментарии вида [intake:2126589] Разбор. Причина падения: … реализовано в [2074052](https://ru.1forma.ru/spa/tasks/2074052): вся строка отрендерилась одной синей ссылкой, ведущая [ пропала. Обходится переносом: текст в скобках — отдельным абзацем (пустая строка между ним и абзацем со ссылкой). Одиночные скобки без ссылки в том же абзаце отображаются нормально, поэтому дефект перемежающийся и на коротких сообщениях не виден.

В веб-интерфейсе (лента и чат) поддерживаются все форматы из таблицы выше: жирный, курсив, зачёркнутый, подчёркнутый, код, ссылки, заголовки, блоки кода, таблицы, маркированные и нумерованные списки, разделители, спойлер, упоминания и ссылки на задачи. Оформление одинаковое: лента и чат используют один и тот же обработчик разметки, различается только ширина области — широкая таблица в ленте растягивается, в бабле чата прокручивается по горизонтали.

В мобильном приложении (iOS и Android) поддерживаются: жирный, курсив, зачёркнутый, подчёркнутый, моноширинный текст, именованные ссылки, ссылки на задачи (#12345), @-упоминания, обычные URL и переносы строк. Для моноширинного текста на iOS годятся и одиночные обратные кавычки, и тройные; на Android — только тройные (одиночные останутся в тексте как символы).

Не отображаются на мобильных: заголовки, таблицы, маркированные и нумерованные списки, горизонтальный разделитель, спойлер, превью Диска — эти элементы будут показаны как обычный текст с символами разметки. Если сообщение важно читать с телефона, лучше использовать только жирный, курсив и моноширинный текст, а списки набирать тире с новой строки.