Block-Referenz
Diese Seite dokumentiert jeden Blocktyp, den der Editor mitbringt. Jeder Block hat eine JSON-Form, einen Renderer und einen programmatischen Einfügepfad über editor.blocks.insert.
Alle Blöcke teilen beim Serialisieren dieselbe Hülle: id, type, data und einen optionalen tunes-Datensatz.
Die Blockstruktur
Jeder Block wird in dieselbe JSON-Hülle serialisiert. Die id wird vom Editor zugewiesen und kann beim programmgesteuerten Aufbau von Daten weggelassen werden.
{
"id": "abc123",
"type": "paragraph",
"data": { "html": "Hello <b>world</b>" },
"tunes": {}
}alert
Hervorgehobene Hinweisbox mit 4 Varianten.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| html | string | Ja | HTML-Inhalt der Benachrichtigungsmeldung. Inline-Tool-Markup wird unterstützt. |
| variant | 'error' | 'info' | 'success' | 'warning' | Ja | Visueller Stil der Benachrichtigung. Einer von: error, info, success, warning. |
{
"type": "alert",
"data": { "html": "Your session will expire in 5 minutes.", "variant": "warning" }
}audio
Audioblock. Wird über den audioUploader-Callback bei Editor.create verarbeitet.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| url | string | Ja | URL der einzubettenden Audiodatei. |
| caption | string | Nein | Nur-Text-Beschriftung, die unterhalb des Players angezeigt wird. |
| alt | string | Nein | Barrierefreie Beschriftung für das Audioelement. |
| alignment | 'center' | 'left' | 'right' | Nein | Horizontale Ausrichtung des Players. Einer von: center, left, right. |
{
"type": "audio",
"data": { "url": "/media/podcast.mp3", "caption": "Episode 12", "alignment": "center" }
}checklist
Interaktive Checkbox-Liste mit Markierungsstatus pro Element.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| items | ChecklistItem[] | Ja | Array von Checklisten-Elementen, jedes mit einem Text und einem ausgewählten Zustand. |
| items[].text | string | Ja | HTML-Inhalt der Elementbeschriftung. |
| items[].checked | boolean | Ja | Ob das Kontrollkästchen aktiviert ist. |
{
"type": "checklist",
"data": {
"items": [
{ "text": "Install the package", "checked": true },
{ "text": "Mount the editor", "checked": false }
]
}
}code
Codeblock mit Syntaxhervorhebung. 50 Sprachen werden unterstützt, darunter typescript, python, rust, go, ruby, swift und kotlin.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| code | string | Ja | Der anzuzeigende rohe Code-String. |
| language | CodeLanguage | Nein | Sprache für die Syntaxhervorhebung. Standard ist typescript. |
| theme | CodeTheme | Nein | Farbthema des Editors. Standard ist github-dark. |
| showCopy | boolean | Nein | Eine Kopierschaltfläche in der gerenderten Ausgabe anzeigen. |
| syncKey | string | Nein | Blöcke mit demselben Schlüssel wechseln die Sprache gemeinsam. |
| variants | CodeVariant[] | Nein | Wenn nicht leer, rendert es eine Tableiste der Varianten und ist die maßgebliche Quelle. |
{
"type": "code",
"data": { "code": "const x = 42;", "language": "typescript", "theme": "github-dark", "showCopy": true }
}collapsible
Ein einklappbarer Abschnitt mit Titel und verschachtelten Kindblöcken. Unbekannte Kindblocktypen bleiben unverändert erhalten, sodass neuere Dokumente ältere Renderer überleben.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| html | string | Ja | Abschnittstitel als Inline-HTML. |
| open | boolean | Nein | Ob der Abschnitt ausgeklappt gerendert wird. |
| children | Block[] | Nein | Verschachtelte Kindblöcke. |
{
"type": "collapsible",
"data": {
"html": "Details",
"open": true,
"children": [{ "type": "paragraph", "data": { "html": "Hidden until opened." } }]
}
}collection
Bettet eine Live-Sammlungsansicht per id ein. Der Block speichert nur die Identität der Sammlung; Form und Daten gehören dem Server.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| collectionId | string | Ja | Die id der eingebetteten Sammlung. Das Einzige, was gespeichert wird. |
{
"type": "collection",
"data": { "collectionId": "c-42" }
}columns
Ein mehrspaltiges Layout mit 2 bis 4 Spalten, von denen jede ihre eigene Liste von Kindblöcken hält.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| columns | Block[][] | Ja | Die Spalten, jede eine Liste von Kindblöcken. Zwei bis vier Spalten. |
{
"type": "columns",
"data": {
"columns": [
[{ "type": "paragraph", "data": { "html": "Left" } }],
[{ "type": "paragraph", "data": { "html": "Right" } }]
]
}
}date
Ein Kalenderdatum, ohne Zeitzone gespeichert, damit sich alle Mitwirkenden darauf einigen.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| date | string | Ja | ISO-Datum im Format yyyy-MM-dd, ohne Zeitzone. |
{
"type": "date",
"data": { "date": "2026-08-31" }
}delimiter
Visueller Trenner zwischen Abschnitten.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| variant | 'line' | 'stars' | Ja | Visueller Stil des Trennzeichens. Einer von: line, stars. |
{
"type": "delimiter",
"data": { "variant": "line" }
}doc_card
Eine reichhaltige Linkkarte für ein anderes Dokument. Sie speichert die id der referenzierten Seite und einen Anzeige-Schnappschuss, den Hosts bei einer Umbenennung aktualisieren.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| pageId | string | Ja | Die id der referenzierten Seite; die Identität der Karte. |
| title | string | Ja | Anzeige-Schnappschuss des Seitentitels. |
| icon | string | Nein | Optionales Symbol, das auf der Karte angezeigt wird. |
| description | string | Nein | Optionale Beschreibung, die unter dem Titel angezeigt wird. |
{
"type": "doc_card",
"data": { "pageId": "p-7", "title": "Release notes", "icon": "📄" }
}embed
Ein eingebetteter Link. Der Block speichert die URL; Anbieter und Einbettungs-Markup werden beim Rendern abgeleitet, die Unfurl-Felder dienen als Ausweichkarte.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| url | string | Ja | Der eingebettete Link. Anbieter und Einbettungs-Markup werden daraus beim Rendern abgeleitet. |
| title | string | Nein | Unfurl-Schnappschuss für die Linkkarte. |
| description | string | Nein | Unfurl-Beschreibung für die Linkkarte. |
| imageUrl | string | Nein | Unfurl-Vorschaubild für die Linkkarte. |
| display | 'card' | Nein | "card", um eine Linkkarte zu zeigen, auch wo eine Live-Ansicht existiert. |
| file | object | Nein | Name, Typ und Symbol einer Drive-Datei, aus dem Google-Konto der einfügenden Person. |
| gist | object | Nein | Die Dateien des Gists wie eingefügt, als Code gezeichnet, wo GitHubs eigene Ansicht nicht laden kann. |
| reason | string | Nein | Warum die Live-Ansicht nicht gezeigt wird: connect_google, no_access, provider_unreachable oder switched_off. |
| issue | object | Nein | Ein Issue-Link als Karte: der zuletzt gelesene Stand (tool, key, title, stateName, category, assigneeName, updatedAt, reason). |
{
"type": "embed",
"data": { "url": "https://www.youtube.com/watch?v=abc123" }
}file
Ein Dateianhang mit Download-Link, Namen sowie optionaler Größe und optionalem Inhaltstyp.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| url | string | Ja | Woher die Datei ausgeliefert wird. |
| name | string | Ja | Dateiname, der am Anhang angezeigt wird. |
| size | number | Nein | Dateigröße in Bytes. |
| contentType | string | Nein | MIME-Typ der Datei. |
{
"type": "file",
"data": { "url": "/files/notes.pdf", "name": "notes.pdf", "size": 2048, "contentType": "application/pdf" }
}glance
Ein Zusammenfassungspanel aus Beschriftungen und Werten: Faktenzeilen auf einen Blick, mit optionaler Beschriftung und Hintergrundvariante.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| rows | GlanceRow[] | Ja | Die anzuzeigenden Fakten: Jede Zeile ist eine Beschriftung und ein Inline-HTML-Wert. |
| caption | string | Nein | Optionale Beschriftung über den Zeilen. |
| variant | 'plain' | 'error' | 'info' | 'success' | 'warning' | Nein | Hintergrundvariante; plain ist ungestylt, der Rest entspricht der Alert-Palette. |
{
"type": "glance",
"data": {
"caption": "Facts",
"rows": [{ "label": "Version", "html": "<b>1.0</b>" }],
"variant": "plain"
}
}header
Überschriften der obersten Ebene und Abschnittsüberschriften (h1 bis h6). Inline-Tools funktionieren innerhalb der html-Nutzlast.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| html | string | Ja | HTML-Inhalt der Überschrift. Inline-Tool-Markup wird unterstützt. |
| level | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | Nein | Überschriftenebene. Einer von: h1, h2, h3, h4, h5, h6. Standard ist h1. |
{
"type": "header",
"data": { "html": "Getting started", "level": "h2" }
}image
Bildblock mit Beschriftung und Alt-Text. Wird über den imageUploader-Callback bei Editor.create verarbeitet.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| url | string | Ja | URL des einzubettenden Bildes. |
| caption | string | Nein | Nur-Text-Beschriftung, die unterhalb des Bildes angezeigt wird. |
| alt | string | Nein | Alt-Text für das Bildelement. |
| alignment | 'center' | 'left' | 'right' | Nein | Horizontale Ausrichtung des Bildes. Einer von: center, left, right. |
{
"type": "image",
"data": { "url": "/img/hero.jpg", "caption": "Hero image", "alt": "A hero", "alignment": "center" }
}issues
Eine Tabelle der verknüpften Issues, beim Rendern aus den Issue-Chips und -Karten der Seite abgeleitet (Issue, Titel, Status, Zuständige). Sie speichert keine eigenen Daten.
Dieser Block speichert keine Felder; die Zeilen werden beim Rendern aus den Issue-Chips und -Karten der Seite abgeleitet.
{
"type": "issues",
"data": {}
}latex
LaTeX-Mathematik, als Quelltext gespeichert und beim Rendern gesetzt. Ein besserer Renderer verbessert später jedes bereits existierende Dokument.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| source | string | Ja | Der LaTeX-Quelltext. Als Quelltext gespeichert, nie als gerenderte Ausgabe. |
{
"type": "latex",
"data": { "source": "\\frac{a}{b}" }
}list
Geordnete oder ungeordnete Liste. Jedes Element ist html.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| type | 'ordered' | 'unordered' | Ja | Listentyp. Einer von: ordered, unordered. |
| items | string[] | Ja | Array von HTML-Strings, einer pro Listenelement. |
{
"type": "list",
"data": { "type": "unordered", "items": ["First item", "Second item"] }
}mermaid
Ein Mermaid-Diagramm, als Quelltext gespeichert und bei der Anzeige gezeichnet, nie als Rasterbild.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| source | string | Ja | Der Mermaid-Quelltext. Als Quelltext gespeichert, nie als gezeichnete Ausgabe. |
{
"type": "mermaid",
"data": { "source": "flowchart TD\n A --> B" }
}openapi
Rendert eine interaktive API-Referenz aus einem OpenAPI-3.x-Dokument, inline oder von einer URL geholt, mit Serverauswahl und Code-Schnipseln.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| spec | object | Nein | Ein Inline-OpenAPI-3.x-Dokument. Gewinnt gegenüber url, wenn beide gesetzt sind. |
| url | string | Nein | Woher das OpenAPI-Dokument beim Rendern geholt wird. |
| include | OpenApiFilter | Nein | Filter, welche Operationen gerendert werden. |
| exclude | OpenApiFilter | Nein | Filter, welche Operationen verborgen werden. |
| defaultServer | string | Nein | Welchen Server die Referenz standardmäßig auswählt. |
| snippetLanguages | CodeLanguage[] | Nein | Sprachen, die für Anfrage-Schnipsel angeboten werden. |
{
"type": "openapi",
"data": { "url": "/api/openapi.json", "defaultServer": "https://api.example.com" }
}paragraph
Rich-Text-Absatz. Akzeptiert Inline-Tool-Markup wie bold, italic, code, link, marker und tooltip.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| html | string | Ja | HTML-Inhalt des Absatzes. Inline-Tool-Markup wird unterstützt. |
{
"type": "paragraph",
"data": { "html": "This is a <b>paragraph</b> with inline markup." }
}quote
Blockzitat mit optionaler Autorenangabe.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| html | string | Ja | HTML-Inhalt des Zitatinhalts. Inline-Tool-Markup wird unterstützt. |
| author | string | Nein | Nur-Text- oder HTML-Zuschreibung, die unterhalb des Zitats angezeigt wird. |
{
"type": "quote",
"data": { "html": "The best way to predict the future is to invent it.", "author": "Alan Kay" }
}sketch
Eine Freihandzeichnung, als Striche gespeichert, nie als Rasterbild: Sie bleibt bearbeitbar und skaliert sauber.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| strokes | SketchStroke[] | Ja | Die Zeichnung als Striche: Jeder Strich ist eine Punkteliste mit optionaler Farbe und Breite. |
{
"type": "sketch",
"data": { "strokes": [{ "points": [0, 0, 10, 10], "color": "#ff0000", "width": 3 }] }
}table
Datenraster. Die erste Zeile kann als Kopfzeile verwendet werden; jede Zelle ist html.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| data | string[][] | Ja | Zweidimensionales Array von HTML-Zell-Strings. Die erste Zeile ist die Kopfzeile. |
| caption | string | Nein | Nur-Text- oder HTML-Beschriftung, die unterhalb der Tabelle angezeigt wird. |
| showDownload | boolean | Nein | Eine Download-Schaltfläche in der gerenderten Ausgabe anzeigen. |
{
"type": "table",
"data": {
"data": [["Name", "Type"], ["html", "string"], ["variant", "AlertVariant"]],
"caption": "AlertData fields",
"showDownload": false
}
}toc
Ein Inhaltsverzeichnis, das beim Rendern aus den Überschriften des Dokuments abgeleitet wird. Es speichert keine eigenen Daten.
Dieser Block speichert keine Felder; die Liste wird beim Rendern aus den Überschriften des Dokuments abgeleitet.
{
"type": "toc",
"data": {}
}updates
Ein Live-Aktivitätsfeed für ein Dokument. Er speichert Identität, nie einen Schnappschuss, und zeigt so weiterhin die aktuelle Aktivität.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| pageId | string | Nein | Wessen Dokumentaktivität angezeigt wird. Fehlt der Wert, ist es das Dokument, in dem der Block sitzt. |
{
"type": "updates",
"data": { "pageId": "p-7" }
}video
Videoblock. Wird über den videoUploader-Callback bei Editor.create verarbeitet.
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| url | string | Ja | URL der Videodatei oder YouTube/Vimeo-Einbettungslink. |
| caption | string | Nein | Nur-Text-Beschriftung, die unterhalb des Players angezeigt wird. |
| alt | string | Nein | Barrierefreie Beschriftung für das Videoelement. |
| alignment | 'center' | 'left' | 'right' | Nein | Horizontale Ausrichtung des Players. Einer von: center, left, right. |
{
"type": "video",
"data": { "url": "/media/demo.mp4", "caption": "Product demo", "alignment": "center" }
}