Zum Hauptinhalt springen

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.

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

alert

Hervorgehobene Hinweisbox mit 4 Varianten.

FeldTypErforderlichBeschreibung
htmlstringJaHTML-Inhalt der Benachrichtigungsmeldung. Inline-Tool-Markup wird unterstützt.
variant'error' | 'info' | 'success' | 'warning'JaVisueller Stil der Benachrichtigung. Einer von: error, info, success, warning.
JSON
{
  "type": "alert",
  "data": { "html": "Your session will expire in 5 minutes.", "variant": "warning" }
}

audio

Audioblock. Wird über den audioUploader-Callback bei Editor.create verarbeitet.

FeldTypErforderlichBeschreibung
urlstringJaURL der einzubettenden Audiodatei.
captionstringNeinNur-Text-Beschriftung, die unterhalb des Players angezeigt wird.
altstringNeinBarrierefreie Beschriftung für das Audioelement.
alignment'center' | 'left' | 'right'NeinHorizontale Ausrichtung des Players. Einer von: center, left, right.
JSON
{
  "type": "audio",
  "data": { "url": "/media/podcast.mp3", "caption": "Episode 12", "alignment": "center" }
}

checklist

Interaktive Checkbox-Liste mit Markierungsstatus pro Element.

FeldTypErforderlichBeschreibung
itemsChecklistItem[]JaArray von Checklisten-Elementen, jedes mit einem Text und einem ausgewählten Zustand.
items[].textstringJaHTML-Inhalt der Elementbeschriftung.
items[].checkedbooleanJaOb das Kontrollkästchen aktiviert ist.
JSON
{
  "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.

FeldTypErforderlichBeschreibung
codestringJaDer anzuzeigende rohe Code-String.
languageCodeLanguageNeinSprache für die Syntaxhervorhebung. Standard ist typescript.
themeCodeThemeNeinFarbthema des Editors. Standard ist github-dark.
showCopybooleanNeinEine Kopierschaltfläche in der gerenderten Ausgabe anzeigen.
syncKeystringNeinBlöcke mit demselben Schlüssel wechseln die Sprache gemeinsam.
variantsCodeVariant[]NeinWenn nicht leer, rendert es eine Tableiste der Varianten und ist die maßgebliche Quelle.
JSON
{
  "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.

FeldTypErforderlichBeschreibung
htmlstringJaAbschnittstitel als Inline-HTML.
openbooleanNeinOb der Abschnitt ausgeklappt gerendert wird.
childrenBlock[]NeinVerschachtelte Kindblöcke.
JSON
{
  "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.

FeldTypErforderlichBeschreibung
collectionIdstringJaDie id der eingebetteten Sammlung. Das Einzige, was gespeichert wird.
JSON
{
  "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.

FeldTypErforderlichBeschreibung
columnsBlock[][]JaDie Spalten, jede eine Liste von Kindblöcken. Zwei bis vier Spalten.
JSON
{
  "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.

FeldTypErforderlichBeschreibung
datestringJaISO-Datum im Format yyyy-MM-dd, ohne Zeitzone.
JSON
{
  "type": "date",
  "data": { "date": "2026-08-31" }
}

delimiter

Visueller Trenner zwischen Abschnitten.

FeldTypErforderlichBeschreibung
variant'line' | 'stars'JaVisueller Stil des Trennzeichens. Einer von: line, stars.
JSON
{
  "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.

FeldTypErforderlichBeschreibung
pageIdstringJaDie id der referenzierten Seite; die Identität der Karte.
titlestringJaAnzeige-Schnappschuss des Seitentitels.
iconstringNeinOptionales Symbol, das auf der Karte angezeigt wird.
descriptionstringNeinOptionale Beschreibung, die unter dem Titel angezeigt wird.
JSON
{
  "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.

FeldTypErforderlichBeschreibung
urlstringJaDer eingebettete Link. Anbieter und Einbettungs-Markup werden daraus beim Rendern abgeleitet.
titlestringNeinUnfurl-Schnappschuss für die Linkkarte.
descriptionstringNeinUnfurl-Beschreibung für die Linkkarte.
imageUrlstringNeinUnfurl-Vorschaubild für die Linkkarte.
display'card'Nein"card", um eine Linkkarte zu zeigen, auch wo eine Live-Ansicht existiert.
fileobjectNeinName, Typ und Symbol einer Drive-Datei, aus dem Google-Konto der einfügenden Person.
gistobjectNeinDie Dateien des Gists wie eingefügt, als Code gezeichnet, wo GitHubs eigene Ansicht nicht laden kann.
reasonstringNeinWarum die Live-Ansicht nicht gezeigt wird: connect_google, no_access, provider_unreachable oder switched_off.
issueobjectNeinEin Issue-Link als Karte: der zuletzt gelesene Stand (tool, key, title, stateName, category, assigneeName, updatedAt, reason).
JSON
{
  "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.

FeldTypErforderlichBeschreibung
urlstringJaWoher die Datei ausgeliefert wird.
namestringJaDateiname, der am Anhang angezeigt wird.
sizenumberNeinDateigröße in Bytes.
contentTypestringNeinMIME-Typ der Datei.
JSON
{
  "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.

FeldTypErforderlichBeschreibung
rowsGlanceRow[]JaDie anzuzeigenden Fakten: Jede Zeile ist eine Beschriftung und ein Inline-HTML-Wert.
captionstringNeinOptionale Beschriftung über den Zeilen.
variant'plain' | 'error' | 'info' | 'success' | 'warning'NeinHintergrundvariante; plain ist ungestylt, der Rest entspricht der Alert-Palette.
JSON
{
  "type": "glance",
  "data": {
    "caption": "Facts",
    "rows": [{ "label": "Version", "html": "<b>1.0</b>" }],
    "variant": "plain"
  }
}

Überschriften der obersten Ebene und Abschnittsüberschriften (h1 bis h6). Inline-Tools funktionieren innerhalb der html-Nutzlast.

FeldTypErforderlichBeschreibung
htmlstringJaHTML-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.
JSON
{
  "type": "header",
  "data": { "html": "Getting started", "level": "h2" }
}

image

Bildblock mit Beschriftung und Alt-Text. Wird über den imageUploader-Callback bei Editor.create verarbeitet.

FeldTypErforderlichBeschreibung
urlstringJaURL des einzubettenden Bildes.
captionstringNeinNur-Text-Beschriftung, die unterhalb des Bildes angezeigt wird.
altstringNeinAlt-Text für das Bildelement.
alignment'center' | 'left' | 'right'NeinHorizontale Ausrichtung des Bildes. Einer von: center, left, right.
JSON
{
  "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.

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

latex

LaTeX-Mathematik, als Quelltext gespeichert und beim Rendern gesetzt. Ein besserer Renderer verbessert später jedes bereits existierende Dokument.

FeldTypErforderlichBeschreibung
sourcestringJaDer LaTeX-Quelltext. Als Quelltext gespeichert, nie als gerenderte Ausgabe.
JSON
{
  "type": "latex",
  "data": { "source": "\\frac{a}{b}" }
}

list

Geordnete oder ungeordnete Liste. Jedes Element ist html.

FeldTypErforderlichBeschreibung
type'ordered' | 'unordered'JaListentyp. Einer von: ordered, unordered.
itemsstring[]JaArray von HTML-Strings, einer pro Listenelement.
JSON
{
  "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.

FeldTypErforderlichBeschreibung
sourcestringJaDer Mermaid-Quelltext. Als Quelltext gespeichert, nie als gezeichnete Ausgabe.
JSON
{
  "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.

FeldTypErforderlichBeschreibung
specobjectNeinEin Inline-OpenAPI-3.x-Dokument. Gewinnt gegenüber url, wenn beide gesetzt sind.
urlstringNeinWoher das OpenAPI-Dokument beim Rendern geholt wird.
includeOpenApiFilterNeinFilter, welche Operationen gerendert werden.
excludeOpenApiFilterNeinFilter, welche Operationen verborgen werden.
defaultServerstringNeinWelchen Server die Referenz standardmäßig auswählt.
snippetLanguagesCodeLanguage[]NeinSprachen, die für Anfrage-Schnipsel angeboten werden.
JSON
{
  "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.

FeldTypErforderlichBeschreibung
htmlstringJaHTML-Inhalt des Absatzes. Inline-Tool-Markup wird unterstützt.
JSON
{
  "type": "paragraph",
  "data": { "html": "This is a <b>paragraph</b> with inline markup." }
}

quote

Blockzitat mit optionaler Autorenangabe.

FeldTypErforderlichBeschreibung
htmlstringJaHTML-Inhalt des Zitatinhalts. Inline-Tool-Markup wird unterstützt.
authorstringNeinNur-Text- oder HTML-Zuschreibung, die unterhalb des Zitats angezeigt wird.
JSON
{
  "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.

FeldTypErforderlichBeschreibung
strokesSketchStroke[]JaDie Zeichnung als Striche: Jeder Strich ist eine Punkteliste mit optionaler Farbe und Breite.
JSON
{
  "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.

FeldTypErforderlichBeschreibung
datastring[][]JaZweidimensionales Array von HTML-Zell-Strings. Die erste Zeile ist die Kopfzeile.
captionstringNeinNur-Text- oder HTML-Beschriftung, die unterhalb der Tabelle angezeigt wird.
showDownloadbooleanNeinEine Download-Schaltfläche in der gerenderten Ausgabe anzeigen.
JSON
{
  "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.

JSON
{
  "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.

FeldTypErforderlichBeschreibung
pageIdstringNeinWessen Dokumentaktivität angezeigt wird. Fehlt der Wert, ist es das Dokument, in dem der Block sitzt.
JSON
{
  "type": "updates",
  "data": { "pageId": "p-7" }
}

video

Videoblock. Wird über den videoUploader-Callback bei Editor.create verarbeitet.

FeldTypErforderlichBeschreibung
urlstringJaURL der Videodatei oder YouTube/Vimeo-Einbettungslink.
captionstringNeinNur-Text-Beschriftung, die unterhalb des Players angezeigt wird.
altstringNeinBarrierefreie Beschriftung für das Videoelement.
alignment'center' | 'left' | 'right'NeinHorizontale Ausrichtung des Players. Einer von: center, left, right.
JSON
{
  "type": "video",
  "data": { "url": "/media/demo.mp4", "caption": "Product demo", "alignment": "center" }
}