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

Справочник блоков

Эта страница документирует каждый тип блока, который поставляется с редактором. У каждого блока есть форма JSON, рендерер и программный путь вставки через editor.blocks.insert.

Все блоки при сериализации используют одну и ту же оболочку: id, type, data и необязательную запись tunes.

Форма блока

Каждый блок сериализуется в одну и ту же JSON-оболочку. id назначается редактором и может быть опущен при программном построении данных.

JSON
{
  "id": "abc123",
  "type": "paragraph",
  "data": { "html": "Hello <b>world</b>" },
  "tunes": {}
}

alert

Выделенный блок-уведомление с 4 вариантами.

ПолеТипОбязательноОписание
htmlstringДаHTML-содержимое сообщения-предупреждения. Разметка инлайн-инструментов поддерживается.
variant'error' | 'info' | 'success' | 'warning'ДаВизуальный стиль предупреждения. Одно из: error, info, success, warning.
JSON
{
  "type": "alert",
  "data": { "html": "Your session will expire in 5 minutes.", "variant": "warning" }
}

audio

Блок аудио. Обрабатывается через колбэк audioUploader в Editor.create.

ПолеТипОбязательноОписание
urlstringДаURL аудиофайла для встраивания.
captionstringНетПодпись в виде простого текста, отображаемая под плеером.
altstringНетДоступная метка для аудиоэлемента.
alignment'center' | 'left' | 'right'НетГоризонтальное выравнивание плеера. Одно из: center, left, right.
JSON
{
  "type": "audio",
  "data": { "url": "/media/podcast.mp3", "caption": "Episode 12", "alignment": "center" }
}

checklist

Интерактивный список флажков с состоянием отметки для каждого элемента.

ПолеТипОбязательноОписание
itemsChecklistItem[]ДаМассив элементов контрольного списка, каждый с текстом и состоянием отметки.
items[].textstringДаHTML-содержимое метки элемента.
items[].checkedbooleanДаОтмечен ли флажок.
JSON
{
  "type": "checklist",
  "data": {
    "items": [
      { "text": "Install the package", "checked": true },
      { "text": "Mount the editor", "checked": false }
    ]
  }
}

code

Блок кода с подсветкой синтаксиса. Поддерживается 50 языков, среди них typescript, python, rust, go, ruby, swift и kotlin.

ПолеТипОбязательноОписание
codestringДаНеобработанная строка кода для отображения.
languageCodeLanguageНетЯзык подсветки синтаксиса. По умолчанию typescript.
themeCodeThemeНетЦветовая тема редактора. По умолчанию github-dark.
showCopybooleanНетПоказать кнопку копирования в отрендеренном выводе.
syncKeystringНетБлоки с общим ключом переключают язык вместе.
variantsCodeVariant[]НетЕсли не пусто, отображает полосу вкладок вариантов и является авторитетным источником.
JSON
{
  "type": "code",
  "data": { "code": "const x = 42;", "language": "typescript", "theme": "github-dark", "showCopy": true }
}

collapsible

Сворачиваемый раздел с заголовком и вложенными дочерними блоками. Неизвестные типы дочерних блоков сохраняются без изменений, поэтому новые документы переживают старые рендереры.

ПолеТипОбязательноОписание
htmlstringДаЗаголовок раздела как встроенный HTML.
openbooleanНетОтображается ли раздел развёрнутым.
childrenBlock[]НетВложенные дочерние блоки.
JSON
{
  "type": "collapsible",
  "data": {
    "html": "Details",
    "open": true,
    "children": [{ "type": "paragraph", "data": { "html": "Hidden until opened." } }]
  }
}

collection

Встраивает живое представление коллекции по id. Блок хранит только идентичность коллекции; форма и данные принадлежат серверу.

ПолеТипОбязательноОписание
collectionIdstringДаId встроенной коллекции. Единственное, что хранится.
JSON
{
  "type": "collection",
  "data": { "collectionId": "c-42" }
}

columns

Многоколоночный макет из 2–4 колонок, каждая из которых держит собственный список дочерних блоков.

ПолеТипОбязательноОписание
columnsBlock[][]ДаКолонки, каждая из которых является списком дочерних блоков. От двух до четырёх колонок.
JSON
{
  "type": "columns",
  "data": {
    "columns": [
      [{ "type": "paragraph", "data": { "html": "Left" } }],
      [{ "type": "paragraph", "data": { "html": "Right" } }]
    ]
  }
}

date

Календарная дата, хранится без часового пояса, поэтому все соавторы видят одно и то же.

ПолеТипОбязательноОписание
datestringДаДата ISO в форме yyyy-MM-dd, без часового пояса.
JSON
{
  "type": "date",
  "data": { "date": "2026-08-31" }
}

delimiter

Визуальный разделитель между разделами.

ПолеТипОбязательноОписание
variant'line' | 'stars'ДаВизуальный стиль разделителя. Одно из: line, stars.
JSON
{
  "type": "delimiter",
  "data": { "variant": "line" }
}

doc_card

Богатая карточка-ссылка на другой документ. Хранит id целевой страницы и отображаемый снимок, который хосты обновляют при переименовании.

ПолеТипОбязательноОписание
pageIdstringДаId целевой страницы; идентичность карточки.
titlestringДаОтображаемый снимок заголовка страницы.
iconstringНетНеобязательная иконка, отображаемая на карточке.
descriptionstringНетНеобязательное описание, отображаемое под заголовком.
JSON
{
  "type": "doc_card",
  "data": { "pageId": "p-7", "title": "Release notes", "icon": "📄" }
}

embed

Встроенная ссылка. Блок хранит URL; провайдер и разметка встраивания выводятся при отображении, а поля предпросмотра служат запасной карточкой.

ПолеТипОбязательноОписание
urlstringДаВстроенная ссылка. Провайдер и разметка встраивания выводятся из неё при отображении.
titlestringНетСнимок предпросмотра для карточки ссылки.
descriptionstringНетОписание предпросмотра для карточки ссылки.
imageUrlstringНетИзображение предпросмотра для карточки ссылки.
display'card'Нет"card", чтобы показать карточку ссылки даже там, где есть живой просмотр.
fileobjectНетИмя, тип и значок файла Drive из аккаунта Google того, кто вставил ссылку.
gistobjectНетФайлы gist на момент вставки, отрисованные как код там, где собственный вид GitHub не загружается.
reasonstringНетПочему живой просмотр не показан: connect_google, no_access, provider_unreachable или switched_off.
issueobjectНетСсылка на задачу, показанная карточкой: последний прочитанный снимок (tool, key, title, stateName, category, assigneeName, updatedAt, reason).
JSON
{
  "type": "embed",
  "data": { "url": "https://www.youtube.com/watch?v=abc123" }
}

file

Файловое вложение со ссылкой на скачивание, именем и необязательными размером и типом содержимого.

ПолеТипОбязательноОписание
urlstringДаОткуда раздаётся файл.
namestringДаИмя файла, отображаемое на вложении.
sizenumberНетРазмер файла в байтах.
contentTypestringНетMIME-тип файла.
JSON
{
  "type": "file",
  "data": { "url": "/files/notes.pdf", "name": "notes.pdf", "size": 2048, "contentType": "application/pdf" }
}

glance

Панель сводки из подписей и значений: строки фактов, читаемые с одного взгляда, с необязательной подписью и вариантом фона.

ПолеТипОбязательноОписание
rowsGlanceRow[]ДаОтображаемые факты: каждая строка является подписью и встроенным HTML-значением.
captionstringНетНеобязательная подпись над строками.
variant'plain' | 'error' | 'info' | 'success' | 'warning'НетВариант фона; plain без оформления, остальные соответствуют палитре оповещений.
JSON
{
  "type": "glance",
  "data": {
    "caption": "Facts",
    "rows": [{ "label": "Version", "html": "<b>1.0</b>" }],
    "variant": "plain"
  }
}

Заголовки верхнего уровня и разделов (от h1 до h6). Инлайн-инструменты работают внутри html-нагрузки.

ПолеТипОбязательноОписание
htmlstringДаHTML-содержимое заголовка. Разметка инлайн-инструментов поддерживается.
level'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'НетУровень заголовка. Одно из: h1, h2, h3, h4, h5, h6. По умолчанию h1.
JSON
{
  "type": "header",
  "data": { "html": "Getting started", "level": "h2" }
}

image

Блок изображения с подписью и alt-текстом. Обрабатывается через колбэк imageUploader в Editor.create.

ПолеТипОбязательноОписание
urlstringДаURL изображения для встраивания.
captionstringНетПодпись в виде простого текста, отображаемая под изображением.
altstringНетAlt-текст для элемента изображения.
alignment'center' | 'left' | 'right'НетГоризонтальное выравнивание изображения. Одно из: center, left, right.
JSON
{
  "type": "image",
  "data": { "url": "/img/hero.jpg", "caption": "Hero image", "alt": "A hero", "alignment": "center" }
}

issues

Таблица связанных задач, выводимая при отображении из чипов и карточек задач на странице (задача, название, статус, исполнитель). Собственных данных не хранит.

Этот блок не хранит полей; строки выводятся из чипов и карточек задач на странице при отображении.

JSON
{
  "type": "issues",
  "data": {}
}

latex

Математика LaTeX: хранится как исходник и вёрстка выполняется при отображении. Лучший рендерер позже улучшит каждый уже существующий документ.

ПолеТипОбязательноОписание
sourcestringДаИсходник LaTeX. Хранится как исходник, никогда как отрисованный результат.
JSON
{
  "type": "latex",
  "data": { "source": "\\frac{a}{b}" }
}

list

Упорядоченный или неупорядоченный список. Каждый элемент: html.

ПолеТипОбязательноОписание
type'ordered' | 'unordered'ДаТип списка. Одно из: ordered, unordered.
itemsstring[]ДаМассив HTML-строк, по одной на каждый элемент списка.
JSON
{
  "type": "list",
  "data": { "type": "unordered", "items": ["First item", "Second item"] }
}

mermaid

Диаграмма Mermaid: хранится как исходник и рисуется при показе, никогда как растровое изображение.

ПолеТипОбязательноОписание
sourcestringДаИсходник Mermaid. Хранится как исходник, никогда как нарисованный результат.
JSON
{
  "type": "mermaid",
  "data": { "source": "flowchart TD\n  A --> B" }
}

openapi

Отображает интерактивный справочник API из документа OpenAPI 3.x, встроенного или загруженного по URL, с выбором сервера и фрагментами кода.

ПолеТипОбязательноОписание
specobjectНетВстроенный документ OpenAPI 3.x. Имеет приоритет над url, если заданы оба.
urlstringНетОткуда загружать документ OpenAPI при отображении.
includeOpenApiFilterНетФильтр того, какие операции отображать.
excludeOpenApiFilterНетФильтр того, какие операции скрывать.
defaultServerstringНетКакой сервер справочник выбирает по умолчанию.
snippetLanguagesCodeLanguage[]НетЯзыки, предлагаемые для фрагментов запросов.
JSON
{
  "type": "openapi",
  "data": { "url": "/api/openapi.json", "defaultServer": "https://api.example.com" }
}

paragraph

Абзац форматированного текста. Принимает разметку инлайн-инструментов, таких как bold, italic, code, link, marker и tooltip.

ПолеТипОбязательноОписание
htmlstringДаHTML-содержимое абзаца. Разметка инлайн-инструментов поддерживается.
JSON
{
  "type": "paragraph",
  "data": { "html": "This is a <b>paragraph</b> with inline markup." }
}

quote

Цитата с необязательным указанием автора.

ПолеТипОбязательноОписание
htmlstringДаHTML-содержимое тела цитаты. Разметка инлайн-инструментов поддерживается.
authorstringНетАтрибуция в виде простого текста или HTML, отображаемая под цитатой.
JSON
{
  "type": "quote",
  "data": { "html": "The best way to predict the future is to invent it.", "author": "Alan Kay" }
}

sketch

Рисунок от руки, хранящийся как штрихи, никогда как растр: он остаётся редактируемым и чисто масштабируется.

ПолеТипОбязательноОписание
strokesSketchStroke[]ДаРисунок как штрихи: каждый штрих является списком точек с необязательными цветом и толщиной.
JSON
{
  "type": "sketch",
  "data": { "strokes": [{ "points": [0, 0, 10, 10], "color": "#ff0000", "width": 3 }] }
}

table

Сетка данных. Первую строку можно использовать как заголовок; каждая ячейка: html.

ПолеТипОбязательноОписание
datastring[][]ДаДвумерный массив строк HTML-ячеек. Первая строка является строкой заголовка.
captionstringНетПодпись в виде простого текста или HTML, отображаемая под таблицей.
showDownloadbooleanНетПоказать кнопку загрузки в отрендеренном выводе.
JSON
{
  "type": "table",
  "data": {
    "data": [["Name", "Type"], ["html", "string"], ["variant", "AlertVariant"]],
    "caption": "AlertData fields",
    "showDownload": false
  }
}

toc

Оглавление, выводимое из заголовков документа при отображении. Собственных данных не хранит.

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

JSON
{
  "type": "toc",
  "data": {}
}

updates

Живая лента активности документа. Хранит идентичность, никогда снимок, поэтому продолжает показывать текущую активность.

ПолеТипОбязательноОписание
pageIdstringНетАктивность какого документа показывать. Отсутствие значения означает документ, в котором находится блок.
JSON
{
  "type": "updates",
  "data": { "pageId": "p-7" }
}

video

Блок видео. Обрабатывается через колбэк videoUploader в Editor.create.

ПолеТипОбязательноОписание
urlstringДаURL видеофайла или ссылка для встраивания YouTube/Vimeo.
captionstringНетПодпись в виде простого текста, отображаемая под плеером.
altstringНетДоступная метка для видеоэлемента.
alignment'center' | 'left' | 'right'НетГоризонтальное выравнивание плеера. Одно из: center, left, right.
JSON
{
  "type": "video",
  "data": { "url": "/media/demo.mp4", "caption": "Product demo", "alignment": "center" }
}