Справочник блоков
Эта страница документирует каждый тип блока, который поставляется с редактором. У каждого блока есть форма JSON, рендерер и программный путь вставки через editor.blocks.insert.
Все блоки при сериализации используют одну и ту же оболочку: id, type, data и необязательную запись tunes.
Форма блока
Каждый блок сериализуется в одну и ту же JSON-оболочку. id назначается редактором и может быть опущен при программном построении данных.
{
"id": "abc123",
"type": "paragraph",
"data": { "html": "Hello <b>world</b>" },
"tunes": {}
}alert
Выделенный блок-уведомление с 4 вариантами.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| html | string | Да | HTML-содержимое сообщения-предупреждения. Разметка инлайн-инструментов поддерживается. |
| variant | 'error' | 'info' | 'success' | 'warning' | Да | Визуальный стиль предупреждения. Одно из: error, info, success, warning. |
{
"type": "alert",
"data": { "html": "Your session will expire in 5 minutes.", "variant": "warning" }
}audio
Блок аудио. Обрабатывается через колбэк audioUploader в Editor.create.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| url | string | Да | URL аудиофайла для встраивания. |
| caption | string | Нет | Подпись в виде простого текста, отображаемая под плеером. |
| alt | string | Нет | Доступная метка для аудиоэлемента. |
| alignment | 'center' | 'left' | 'right' | Нет | Горизонтальное выравнивание плеера. Одно из: center, left, right. |
{
"type": "audio",
"data": { "url": "/media/podcast.mp3", "caption": "Episode 12", "alignment": "center" }
}checklist
Интерактивный список флажков с состоянием отметки для каждого элемента.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| items | ChecklistItem[] | Да | Массив элементов контрольного списка, каждый с текстом и состоянием отметки. |
| items[].text | string | Да | HTML-содержимое метки элемента. |
| items[].checked | boolean | Да | Отмечен ли флажок. |
{
"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.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| code | string | Да | Необработанная строка кода для отображения. |
| language | CodeLanguage | Нет | Язык подсветки синтаксиса. По умолчанию typescript. |
| theme | CodeTheme | Нет | Цветовая тема редактора. По умолчанию github-dark. |
| showCopy | boolean | Нет | Показать кнопку копирования в отрендеренном выводе. |
| syncKey | string | Нет | Блоки с общим ключом переключают язык вместе. |
| variants | CodeVariant[] | Нет | Если не пусто, отображает полосу вкладок вариантов и является авторитетным источником. |
{
"type": "code",
"data": { "code": "const x = 42;", "language": "typescript", "theme": "github-dark", "showCopy": true }
}collapsible
Сворачиваемый раздел с заголовком и вложенными дочерними блоками. Неизвестные типы дочерних блоков сохраняются без изменений, поэтому новые документы переживают старые рендереры.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| html | string | Да | Заголовок раздела как встроенный HTML. |
| open | boolean | Нет | Отображается ли раздел развёрнутым. |
| children | Block[] | Нет | Вложенные дочерние блоки. |
{
"type": "collapsible",
"data": {
"html": "Details",
"open": true,
"children": [{ "type": "paragraph", "data": { "html": "Hidden until opened." } }]
}
}collection
Встраивает живое представление коллекции по id. Блок хранит только идентичность коллекции; форма и данные принадлежат серверу.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| collectionId | string | Да | Id встроенной коллекции. Единственное, что хранится. |
{
"type": "collection",
"data": { "collectionId": "c-42" }
}columns
Многоколоночный макет из 2–4 колонок, каждая из которых держит собственный список дочерних блоков.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| columns | Block[][] | Да | Колонки, каждая из которых является списком дочерних блоков. От двух до четырёх колонок. |
{
"type": "columns",
"data": {
"columns": [
[{ "type": "paragraph", "data": { "html": "Left" } }],
[{ "type": "paragraph", "data": { "html": "Right" } }]
]
}
}date
Календарная дата, хранится без часового пояса, поэтому все соавторы видят одно и то же.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| date | string | Да | Дата ISO в форме yyyy-MM-dd, без часового пояса. |
{
"type": "date",
"data": { "date": "2026-08-31" }
}delimiter
Визуальный разделитель между разделами.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| variant | 'line' | 'stars' | Да | Визуальный стиль разделителя. Одно из: line, stars. |
{
"type": "delimiter",
"data": { "variant": "line" }
}doc_card
Богатая карточка-ссылка на другой документ. Хранит id целевой страницы и отображаемый снимок, который хосты обновляют при переименовании.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| pageId | string | Да | Id целевой страницы; идентичность карточки. |
| title | string | Да | Отображаемый снимок заголовка страницы. |
| icon | string | Нет | Необязательная иконка, отображаемая на карточке. |
| description | string | Нет | Необязательное описание, отображаемое под заголовком. |
{
"type": "doc_card",
"data": { "pageId": "p-7", "title": "Release notes", "icon": "📄" }
}embed
Встроенная ссылка. Блок хранит URL; провайдер и разметка встраивания выводятся при отображении, а поля предпросмотра служат запасной карточкой.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| url | string | Да | Встроенная ссылка. Провайдер и разметка встраивания выводятся из неё при отображении. |
| title | string | Нет | Снимок предпросмотра для карточки ссылки. |
| description | string | Нет | Описание предпросмотра для карточки ссылки. |
| imageUrl | string | Нет | Изображение предпросмотра для карточки ссылки. |
| display | 'card' | Нет | "card", чтобы показать карточку ссылки даже там, где есть живой просмотр. |
| file | object | Нет | Имя, тип и значок файла Drive из аккаунта Google того, кто вставил ссылку. |
| gist | object | Нет | Файлы gist на момент вставки, отрисованные как код там, где собственный вид GitHub не загружается. |
| reason | string | Нет | Почему живой просмотр не показан: connect_google, no_access, provider_unreachable или switched_off. |
| issue | object | Нет | Ссылка на задачу, показанная карточкой: последний прочитанный снимок (tool, key, title, stateName, category, assigneeName, updatedAt, reason). |
{
"type": "embed",
"data": { "url": "https://www.youtube.com/watch?v=abc123" }
}file
Файловое вложение со ссылкой на скачивание, именем и необязательными размером и типом содержимого.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| url | string | Да | Откуда раздаётся файл. |
| name | string | Да | Имя файла, отображаемое на вложении. |
| size | number | Нет | Размер файла в байтах. |
| contentType | string | Нет | MIME-тип файла. |
{
"type": "file",
"data": { "url": "/files/notes.pdf", "name": "notes.pdf", "size": 2048, "contentType": "application/pdf" }
}glance
Панель сводки из подписей и значений: строки фактов, читаемые с одного взгляда, с необязательной подписью и вариантом фона.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| rows | GlanceRow[] | Да | Отображаемые факты: каждая строка является подписью и встроенным HTML-значением. |
| caption | string | Нет | Необязательная подпись над строками. |
| variant | 'plain' | 'error' | 'info' | 'success' | 'warning' | Нет | Вариант фона; plain без оформления, остальные соответствуют палитре оповещений. |
{
"type": "glance",
"data": {
"caption": "Facts",
"rows": [{ "label": "Version", "html": "<b>1.0</b>" }],
"variant": "plain"
}
}header
Заголовки верхнего уровня и разделов (от h1 до h6). Инлайн-инструменты работают внутри html-нагрузки.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| html | string | Да | HTML-содержимое заголовка. Разметка инлайн-инструментов поддерживается. |
| level | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | Нет | Уровень заголовка. Одно из: h1, h2, h3, h4, h5, h6. По умолчанию h1. |
{
"type": "header",
"data": { "html": "Getting started", "level": "h2" }
}image
Блок изображения с подписью и alt-текстом. Обрабатывается через колбэк imageUploader в Editor.create.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| url | string | Да | URL изображения для встраивания. |
| caption | string | Нет | Подпись в виде простого текста, отображаемая под изображением. |
| alt | string | Нет | Alt-текст для элемента изображения. |
| alignment | 'center' | 'left' | 'right' | Нет | Горизонтальное выравнивание изображения. Одно из: center, left, right. |
{
"type": "image",
"data": { "url": "/img/hero.jpg", "caption": "Hero image", "alt": "A hero", "alignment": "center" }
}issues
Таблица связанных задач, выводимая при отображении из чипов и карточек задач на странице (задача, название, статус, исполнитель). Собственных данных не хранит.
Этот блок не хранит полей; строки выводятся из чипов и карточек задач на странице при отображении.
{
"type": "issues",
"data": {}
}latex
Математика LaTeX: хранится как исходник и вёрстка выполняется при отображении. Лучший рендерер позже улучшит каждый уже существующий документ.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| source | string | Да | Исходник LaTeX. Хранится как исходник, никогда как отрисованный результат. |
{
"type": "latex",
"data": { "source": "\\frac{a}{b}" }
}list
Упорядоченный или неупорядоченный список. Каждый элемент: html.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| type | 'ordered' | 'unordered' | Да | Тип списка. Одно из: ordered, unordered. |
| items | string[] | Да | Массив HTML-строк, по одной на каждый элемент списка. |
{
"type": "list",
"data": { "type": "unordered", "items": ["First item", "Second item"] }
}mermaid
Диаграмма Mermaid: хранится как исходник и рисуется при показе, никогда как растровое изображение.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| source | string | Да | Исходник Mermaid. Хранится как исходник, никогда как нарисованный результат. |
{
"type": "mermaid",
"data": { "source": "flowchart TD\n A --> B" }
}openapi
Отображает интерактивный справочник API из документа OpenAPI 3.x, встроенного или загруженного по URL, с выбором сервера и фрагментами кода.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| spec | object | Нет | Встроенный документ OpenAPI 3.x. Имеет приоритет над url, если заданы оба. |
| url | string | Нет | Откуда загружать документ OpenAPI при отображении. |
| include | OpenApiFilter | Нет | Фильтр того, какие операции отображать. |
| exclude | OpenApiFilter | Нет | Фильтр того, какие операции скрывать. |
| defaultServer | string | Нет | Какой сервер справочник выбирает по умолчанию. |
| snippetLanguages | CodeLanguage[] | Нет | Языки, предлагаемые для фрагментов запросов. |
{
"type": "openapi",
"data": { "url": "/api/openapi.json", "defaultServer": "https://api.example.com" }
}paragraph
Абзац форматированного текста. Принимает разметку инлайн-инструментов, таких как bold, italic, code, link, marker и tooltip.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| html | string | Да | HTML-содержимое абзаца. Разметка инлайн-инструментов поддерживается. |
{
"type": "paragraph",
"data": { "html": "This is a <b>paragraph</b> with inline markup." }
}quote
Цитата с необязательным указанием автора.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| html | string | Да | HTML-содержимое тела цитаты. Разметка инлайн-инструментов поддерживается. |
| author | string | Нет | Атрибуция в виде простого текста или HTML, отображаемая под цитатой. |
{
"type": "quote",
"data": { "html": "The best way to predict the future is to invent it.", "author": "Alan Kay" }
}sketch
Рисунок от руки, хранящийся как штрихи, никогда как растр: он остаётся редактируемым и чисто масштабируется.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| strokes | SketchStroke[] | Да | Рисунок как штрихи: каждый штрих является списком точек с необязательными цветом и толщиной. |
{
"type": "sketch",
"data": { "strokes": [{ "points": [0, 0, 10, 10], "color": "#ff0000", "width": 3 }] }
}table
Сетка данных. Первую строку можно использовать как заголовок; каждая ячейка: html.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| data | string[][] | Да | Двумерный массив строк HTML-ячеек. Первая строка является строкой заголовка. |
| caption | string | Нет | Подпись в виде простого текста или HTML, отображаемая под таблицей. |
| showDownload | boolean | Нет | Показать кнопку загрузки в отрендеренном выводе. |
{
"type": "table",
"data": {
"data": [["Name", "Type"], ["html", "string"], ["variant", "AlertVariant"]],
"caption": "AlertData fields",
"showDownload": false
}
}toc
Оглавление, выводимое из заголовков документа при отображении. Собственных данных не хранит.
Этот блок не хранит полей; список выводится из заголовков документа при отображении.
{
"type": "toc",
"data": {}
}updates
Живая лента активности документа. Хранит идентичность, никогда снимок, поэтому продолжает показывать текущую активность.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| pageId | string | Нет | Активность какого документа показывать. Отсутствие значения означает документ, в котором находится блок. |
{
"type": "updates",
"data": { "pageId": "p-7" }
}video
Блок видео. Обрабатывается через колбэк videoUploader в Editor.create.
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| url | string | Да | URL видеофайла или ссылка для встраивания YouTube/Vimeo. |
| caption | string | Нет | Подпись в виде простого текста, отображаемая под плеером. |
| alt | string | Нет | Доступная метка для видеоэлемента. |
| alignment | 'center' | 'left' | 'right' | Нет | Горизонтальное выравнивание плеера. Одно из: center, left, right. |
{
"type": "video",
"data": { "url": "/media/demo.mp4", "caption": "Product demo", "alignment": "center" }
}