К содержанию

Навигация

Структурированный текст

Текст заголовков и абзацев хранится не строкой HTML, а маленьким деревом:

  • отрезок текста {"type": "text", "value": "…"} с необязательными отметками marks: strong, em, code;
  • ссылка {"type": "link", "href": "…", "children": [...]}, внутри которой — только отрезки текста.

Пример ниже показывает абзац со ссылкой, текст которой выделен жирным:

JSON
{"id": "lead", "type": "content.paragraph", "data": {"content": [
  {"type": "text", "value": "Откройте "},
  {"type": "link", "href": "/catalog/",
   "children": [{"type": "text", "value": "каталог", "marks": ["strong"]}]}
]}}

Встроенный рендерер выводит этот абзац так:

HTML
<p data-sf-composition-id="lead">Откройте <a href="/catalog/"><strong>каталог</strong></a></p>
  • Отметки становятся тегами <strong>, <em> и <code>. Несколько отметок вкладываются в порядке списка: первая — внутренняя, поэтому "marks": ["strong", "code"] даёт <code><strong>…</strong></code>.
  • Ссылка выводится как <a href="…"> без классов и других атрибутов.
  • Заголовок и абзац не получают классов оформления: их вид задают стили текста по умолчанию и CSS страницы.

Framework экранирует текст перед выводом, поэтому редактору не нужно принимать произвольный HTML.

Правила адресов в ссылках:

  • разрешены http, https, mailto, tel, пути от корня и относительные пути (/, ./, ../) и якоря #;
  • остальное отклоняется с кодом unsafe_url.

Исполняемые и файловые схемы отклоняются, как и адреса вида //host и адреса с обратной косой чертой.

Структурированный текст применяют для заголовков и абзацев, которые правит человек, система управления сайтом или ИИ. Готовый HTML — только результат рендерера, а не исходные данные.

Модель структурированного текста содержит отрезки текста и ссылки. Для длинных материалов со списками и таблицами используется отдельный редактор содержимого.

Поиск по документации

Введите минимум 2 символа

    Настройки

    Тема
    Размер шрифта
    Ширина страницы