Перейти к содержимому
ФреймворкJavaScript

BlockData: полезная нагрузка блока

Структура каждого блока в массиве blocks.

TypeScript
// 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": "Hello, world!" }
};

const headerBlock: OutputBlockData = {
  id: "hM3lTn9RdC",
  type: "header",
  data: { "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": "Item 1",
    "style": "unordered"
  }
};

OutputBlockData

СвойствоОписание
idstring (optional)Уникальный идентификатор блока
typestringИмя типа блока
dataobjectДанные, специфичные для блока
tunes{ [name: string]: BlockTuneData }Тюны/метаданные блока
parentstring (optional)Id родительского блока (плоская вложенность со ссылками). На входе нестрогая транспортная форма принимает также `null`, который трактуется как отсутствие — блок верхнего уровня.
contentstring[] (optional)Id дочерних блоков (плоская вложенность со ссылками). На входе нестрогая транспортная форма принимает также `null` или `[]`, и оба значения трактуются как отсутствие — блок без дочерних блоков.
indentnumber (optional)Уровень вложенности/отступа
lastEditedAtnumber (optional)Метка времени (мс с начала эпохи) последнего изменения этого блока. Появляется, только когда содержимое блока действительно меняется, — загрузка документа не является правкой, поэтому просто отрисованный документ сохраняет ровно то, что загрузил. equalsOutputData игнорирует это поле.
lastEditedBystring (optional)Id пользователя, который последним изменил этот блок (из конфигурации user.id)