Referensi Blok
Halaman ini mendokumentasikan setiap tipe blok yang disertakan editor. Setiap blok punya bentuk JSON, perender, dan jalur penyisipan terprogram lewat editor.blocks.insert.
Semua blok berbagi amplop yang sama saat diserialisasi: id, type, data, dan catatan tunes opsional.
Bentuk blok
Setiap blok diserialisasi ke amplop JSON yang sama. id ditetapkan oleh editor dan dapat dihilangkan saat membangun data secara programatik.
{
"id": "abc123",
"type": "paragraph",
"data": { "html": "Hello <b>world</b>" },
"tunes": {}
}alert
Kotak sorotan dengan 4 varian.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| html | string | Ya | Konten HTML dari pesan alert. Markup alat inline didukung. |
| variant | 'error' | 'info' | 'success' | 'warning' | Ya | Gaya visual dari alert. Salah satu dari: error, info, success, warning. |
{
"type": "alert",
"data": { "html": "Your session will expire in 5 minutes.", "variant": "warning" }
}audio
Blok audio. Dikonsumsi melalui callback audioUploader pada Editor.create.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| url | string | Ya | URL file audio yang akan disematkan. |
| caption | string | Tidak | Keterangan teks biasa yang ditampilkan di bawah pemutar. |
| alt | string | Tidak | Label yang dapat diakses untuk elemen audio. |
| alignment | 'center' | 'left' | 'right' | Tidak | Perataan horizontal dari pemutar. Salah satu dari: center, left, right. |
{
"type": "audio",
"data": { "url": "/media/podcast.mp3", "caption": "Episode 12", "alignment": "center" }
}checklist
Daftar kotak centang interaktif dengan status tercentang per item.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| items | ChecklistItem[] | Ya | Array item checklist, masing-masing dengan teks dan status tercentang. |
| items[].text | string | Ya | Konten HTML dari label item. |
| items[].checked | boolean | Ya | Apakah kotak centang dicentang. |
{
"type": "checklist",
"data": {
"items": [
{ "text": "Install the package", "checked": true },
{ "text": "Mount the editor", "checked": false }
]
}
}code
Blok kode dengan penyorotan sintaks. Mendukung 50 bahasa, termasuk typescript, python, rust, go, ruby, swift, dan kotlin.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| code | string | Ya | String kode mentah yang akan ditampilkan. |
| language | CodeLanguage | Tidak | Bahasa penyorotan sintaks. Default ke typescript. |
| theme | CodeTheme | Tidak | Tema warna editor. Default ke github-dark. |
| showCopy | boolean | Tidak | Tampilkan tombol salin di output yang dirender. |
| syncKey | string | Tidak | Blok yang berbagi kunci berganti bahasa bersama-sama. |
| variants | CodeVariant[] | Tidak | Bila tidak kosong, merender deretan tab varian dan menjadi sumber otoritatif. |
{
"type": "code",
"data": { "code": "const x = 42;", "language": "typescript", "theme": "github-dark", "showCopy": true }
}collapsible
Bagian yang dapat dilipat dengan judul dan blok anak bersarang. Tipe blok anak yang tidak dikenal disimpan apa adanya, sehingga dokumen yang lebih baru tetap aman di renderer yang lebih lama.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| html | string | Ya | Judul bagian sebagai HTML sebaris. |
| open | boolean | Tidak | Apakah bagian dirender dalam keadaan terbuka. |
| children | Block[] | Tidak | Blok anak bersarang. |
{
"type": "collapsible",
"data": {
"html": "Details",
"open": true,
"children": [{ "type": "paragraph", "data": { "html": "Hidden until opened." } }]
}
}collection
Menyematkan tampilan koleksi langsung berdasarkan id. Blok hanya menyimpan identitas koleksi; bentuk dan datanya milik server.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| collectionId | string | Ya | Id koleksi yang disematkan. Satu-satunya hal yang disimpan. |
{
"type": "collection",
"data": { "collectionId": "c-42" }
}columns
Tata letak multikolom berisi 2 sampai 4 kolom, masing-masing memegang daftar blok anaknya sendiri.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| columns | Block[][] | Ya | Kolom-kolomnya, masing-masing daftar blok anak. Dua sampai empat kolom. |
{
"type": "columns",
"data": {
"columns": [
[{ "type": "paragraph", "data": { "html": "Left" } }],
[{ "type": "paragraph", "data": { "html": "Right" } }]
]
}
}date
Tanggal kalender, disimpan tanpa zona waktu sehingga semua kolaborator sepakat.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| date | string | Ya | Tanggal ISO dalam bentuk yyyy-MM-dd, tanpa zona waktu. |
{
"type": "date",
"data": { "date": "2026-08-31" }
}delimiter
Pemisah visual antar bagian.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| variant | 'line' | 'stars' | Ya | Gaya visual dari pemisah. Salah satu dari: line, stars. |
{
"type": "delimiter",
"data": { "variant": "line" }
}doc_card
Kartu tautan kaya untuk dokumen lain. Ia menyimpan id halaman yang dirujuk plus cuplikan tampilan yang disegarkan host saat nama diubah.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| pageId | string | Ya | Id halaman yang dirujuk; identitas kartu. |
| title | string | Ya | Cuplikan tampilan judul halaman. |
| icon | string | Tidak | Ikon opsional yang ditampilkan di kartu. |
| description | string | Tidak | Deskripsi opsional yang ditampilkan di bawah judul. |
{
"type": "doc_card",
"data": { "pageId": "p-7", "title": "Release notes", "icon": "📄" }
}embed
Tautan yang disematkan. Blok menyimpan URL; penyedia dan markup sematan diturunkan saat render, dengan bidang unfurl sebagai kartu cadangan.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| url | string | Ya | Tautan yang disematkan. Penyedia dan markup sematan diturunkan darinya saat render. |
| title | string | Tidak | Cuplikan unfurl untuk kartu tautan. |
| description | string | Tidak | Deskripsi unfurl untuk kartu tautan. |
| imageUrl | string | Tidak | Gambar pratinjau unfurl untuk kartu tautan. |
| display | 'card' | Tidak | "card" untuk menampilkan kartu tautan meski tampilan langsung tersedia. |
| file | object | Tidak | Nama, jenis, dan ikon file Drive, dari akun Google penempel. |
| gist | object | Tidak | File gist saat ditempel, digambar sebagai kode di tempat tampilan GitHub tidak dapat dimuat. |
| reason | string | Tidak | Mengapa tampilan langsung tidak ditampilkan: connect_google, no_access, provider_unreachable, atau switched_off. |
| issue | object | Tidak | Tautan isu yang ditampilkan sebagai kartu: snapshot terakhir yang dibaca (tool, key, title, stateName, category, assigneeName, updatedAt, reason). |
{
"type": "embed",
"data": { "url": "https://www.youtube.com/watch?v=abc123" }
}file
Lampiran berkas dengan tautan unduh, nama, serta ukuran dan tipe konten opsional.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| url | string | Ya | Tempat berkas disajikan. |
| name | string | Ya | Nama berkas yang ditampilkan pada lampiran. |
| size | number | Tidak | Ukuran berkas dalam byte. |
| contentType | string | Tidak | Tipe MIME berkas. |
{
"type": "file",
"data": { "url": "/files/notes.pdf", "name": "notes.pdf", "size": 2048, "contentType": "application/pdf" }
}glance
Panel ringkasan label dan nilai: baris fakta yang terbaca sekilas, dengan keterangan dan varian latar opsional.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| rows | GlanceRow[] | Ya | Fakta yang ditampilkan: setiap baris adalah label dan nilai HTML sebaris. |
| caption | string | Tidak | Keterangan opsional di atas baris. |
| variant | 'plain' | 'error' | 'info' | 'success' | 'warning' | Tidak | Varian latar; plain tanpa gaya, sisanya mengikuti palet alert. |
{
"type": "glance",
"data": {
"caption": "Facts",
"rows": [{ "label": "Version", "html": "<b>1.0</b>" }],
"variant": "plain"
}
}header
Judul tingkat atas dan judul bagian (h1 hingga h6). Alat inline berfungsi di dalam muatan html.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| html | string | Ya | Konten HTML dari heading. Markup alat inline didukung. |
| level | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | Tidak | Tingkat heading. Salah satu dari: h1, h2, h3, h4, h5, h6. Default ke h1. |
{
"type": "header",
"data": { "html": "Getting started", "level": "h2" }
}image
Blok gambar dengan keterangan dan teks alt. Dikonsumsi melalui callback imageUploader pada Editor.create.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| url | string | Ya | URL gambar yang akan disematkan. |
| caption | string | Tidak | Keterangan teks biasa yang ditampilkan di bawah gambar. |
| alt | string | Tidak | Teks alt untuk elemen gambar. |
| alignment | 'center' | 'left' | 'right' | Tidak | Perataan horizontal dari gambar. Salah satu dari: center, left, right. |
{
"type": "image",
"data": { "url": "/img/hero.jpg", "caption": "Hero image", "alt": "A hero", "alignment": "center" }
}issues
Tabel isu tertaut yang diturunkan saat render dari chip dan kartu isu di halaman (isu, judul, status, penerima tugas). Ia tidak menyimpan data sendiri.
Blok ini tidak menyimpan bidang apa pun; barisnya diturunkan dari chip dan kartu isu di halaman saat render.
{
"type": "issues",
"data": {}
}latex
Matematika LaTeX, disimpan sebagai sumber dan ditata saat render. Renderer yang lebih baik nanti memperbaiki setiap dokumen yang sudah ada.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| source | string | Ya | Sumber LaTeX. Disimpan sebagai sumber, tidak pernah sebagai keluaran yang dirender. |
{
"type": "latex",
"data": { "source": "\\frac{a}{b}" }
}list
Daftar berurutan atau tidak berurutan. Setiap item adalah html.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| type | 'ordered' | 'unordered' | Ya | Tipe daftar. Salah satu dari: ordered, unordered. |
| items | string[] | Ya | Array string HTML, satu per item daftar. |
{
"type": "list",
"data": { "type": "unordered", "items": ["First item", "Second item"] }
}mermaid
Diagram Mermaid, disimpan sebagai sumber dan digambar saat ditampilkan, tidak pernah sebagai raster.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| source | string | Ya | Sumber Mermaid. Disimpan sebagai sumber, tidak pernah sebagai keluaran yang digambar. |
{
"type": "mermaid",
"data": { "source": "flowchart TD\n A --> B" }
}openapi
Merender referensi API interaktif dari dokumen OpenAPI 3.x, sebaris atau diambil dari URL, dengan pemilih server dan cuplikan kode.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| spec | object | Tidak | Dokumen OpenAPI 3.x sebaris. Menang atas url bila keduanya diatur. |
| url | string | Tidak | Tempat mengambil dokumen OpenAPI saat render. |
| include | OpenApiFilter | Tidak | Filter operasi mana yang dirender. |
| exclude | OpenApiFilter | Tidak | Filter operasi mana yang disembunyikan. |
| defaultServer | string | Tidak | Server mana yang dipilih referensi secara bawaan. |
| snippetLanguages | CodeLanguage[] | Tidak | Bahasa yang ditawarkan untuk cuplikan permintaan. |
{
"type": "openapi",
"data": { "url": "/api/openapi.json", "defaultServer": "https://api.example.com" }
}paragraph
Paragraf teks kaya. Menerima markup alat inline seperti bold, italic, code, link, marker, dan tooltip.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| html | string | Ya | Konten HTML dari paragraf. Markup alat inline didukung. |
{
"type": "paragraph",
"data": { "html": "This is a <b>paragraph</b> with inline markup." }
}quote
Blockquote dengan atribusi penulis opsional.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| html | string | Ya | Konten HTML dari isi kutipan. Markup alat inline didukung. |
| author | string | Tidak | Atribusi teks biasa atau HTML yang ditampilkan di bawah kutipan. |
{
"type": "quote",
"data": { "html": "The best way to predict the future is to invent it.", "author": "Alan Kay" }
}sketch
Gambar bebas yang disimpan sebagai goresan, tidak pernah raster, sehingga tetap dapat disunting dan diskalakan dengan bersih.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| strokes | SketchStroke[] | Ya | Gambar sebagai goresan: setiap goresan adalah daftar titik dengan warna dan lebar opsional. |
{
"type": "sketch",
"data": { "strokes": [{ "points": [0, 0, 10, 10], "color": "#ff0000", "width": 3 }] }
}table
Kisi data. Baris pertama dapat digunakan sebagai header; setiap sel adalah html.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| data | string[][] | Ya | Array dua dimensi dari string sel HTML. Baris pertama adalah baris header. |
| caption | string | Tidak | Keterangan teks biasa atau HTML yang ditampilkan di bawah tabel. |
| showDownload | boolean | Tidak | Tampilkan tombol unduh di output yang dirender. |
{
"type": "table",
"data": {
"data": [["Name", "Type"], ["html", "string"], ["variant", "AlertVariant"]],
"caption": "AlertData fields",
"showDownload": false
}
}toc
Daftar isi yang diturunkan dari header dokumen saat render. Ia tidak menyimpan data sendiri.
Blok ini tidak menyimpan bidang apa pun; daftarnya diturunkan dari header dokumen saat render.
{
"type": "toc",
"data": {}
}updates
Umpan aktivitas langsung untuk sebuah dokumen. Ia menyimpan identitas, tidak pernah cuplikan, sehingga terus menampilkan aktivitas terkini.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| pageId | string | Tidak | Aktivitas dokumen mana yang ditampilkan. Jika kosong berarti dokumen tempat blok berada. |
{
"type": "updates",
"data": { "pageId": "p-7" }
}video
Blok video. Dikonsumsi melalui callback videoUploader pada Editor.create.
| Bidang | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
| url | string | Ya | URL file video atau tautan embed YouTube/Vimeo. |
| caption | string | Tidak | Keterangan teks biasa yang ditampilkan di bawah pemutar. |
| alt | string | Tidak | Label yang dapat diakses untuk elemen video. |
| alignment | 'center' | 'left' | 'right' | Tidak | Perataan horizontal dari pemutar. Salah satu dari: center, left, right. |
{
"type": "video",
"data": { "url": "/media/demo.mp4", "caption": "Product demo", "alignment": "center" }
}