BlockData: полезная нагрузка блока
Структура каждого блока в массиве blocks.
// Individual block structure
interface OutputBlockData {
id?: string; // Unique identifier (auto-generated)
type: string; // Tool name (e.g., "paragraph", "header")
data: object; // Tool-specific data
tunes?: { [name: string]: BlockTuneData }; // Optional block tunes/metadata
parent?: string; // Id of the parent block (flat-with-references nesting)
content?: string[]; // Ids of child blocks (flat-with-references nesting)
indent?: number; // Nesting/indent level
lastEditedAt?: number; // Timestamp (ms since epoch) of the last edit — omitted until the block is actually edited
lastEditedBy?: string; // Id of the user who last edited this block (from user.id config)
}
// Example blocks:
const paragraphBlock: OutputBlockData = {
id: "p6QK0Xz1Ab",
type: "paragraph",
data: { "text": [{ "text": "Hello, world!" }] }
};
const headerBlock: OutputBlockData = {
id: "hM3lTn9RdC",
type: "header",
data: { "text": [{ "text": "Chapter 1" }], "level": 1 }
};
// Each list item is its own block — the list tool saves a single item,
// not an items[] array
const listItemBlock: OutputBlockData = {
id: "wY7bV2sQ8e",
type: "list",
data: {
"text": [{ "text": "Item 1" }],
"style": "unordered"
}
};OutputBlockData
| Свойство | Описание | |
|---|---|---|
id | string (optional) | Уникальный идентификатор блока |
type | string | Имя типа блока |
data | object | Данные, специфичные для блока |
tunes | { [name: string]: BlockTuneData } | Тюны/метаданные блока |
parent | string (optional) | Id родительского блока (плоская вложенность со ссылками). На входе нестрогая транспортная форма принимает также |
content | string[] (optional) | Id дочерних блоков (плоская вложенность со ссылками). На входе нестрогая транспортная форма принимает также |
indent | number (optional) | Уровень вложенности/отступа |
lastEditedAt | number (optional) | Метка времени (мс с начала эпохи) последнего изменения этого блока. Появляется, только когда содержимое блока действительно меняется. Загрузка документа правкой не считается, поэтому просто отрисованный документ сохраняет ровно то, что загрузил. equalsOutputData игнорирует это поле. |
lastEditedBy | string (optional) | Id пользователя, который последним изменил этот блок (из конфигурации user.id) |