Lewati ke konten utama

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.

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

alert

Kotak sorotan dengan 4 varian.

BidangTipeDiperlukanDeskripsi
htmlstringYaKonten HTML dari pesan alert. Markup alat inline didukung.
variant'error' | 'info' | 'success' | 'warning'YaGaya visual dari alert. Salah satu dari: error, info, success, warning.
JSON
{
  "type": "alert",
  "data": { "html": "Your session will expire in 5 minutes.", "variant": "warning" }
}

audio

Blok audio. Dikonsumsi melalui callback audioUploader pada Editor.create.

BidangTipeDiperlukanDeskripsi
urlstringYaURL file audio yang akan disematkan.
captionstringTidakKeterangan teks biasa yang ditampilkan di bawah pemutar.
altstringTidakLabel yang dapat diakses untuk elemen audio.
alignment'center' | 'left' | 'right'TidakPerataan horizontal dari pemutar. Salah satu dari: center, left, right.
JSON
{
  "type": "audio",
  "data": { "url": "/media/podcast.mp3", "caption": "Episode 12", "alignment": "center" }
}

checklist

Daftar kotak centang interaktif dengan status tercentang per item.

BidangTipeDiperlukanDeskripsi
itemsChecklistItem[]YaArray item checklist, masing-masing dengan teks dan status tercentang.
items[].textstringYaKonten HTML dari label item.
items[].checkedbooleanYaApakah kotak centang dicentang.
JSON
{
  "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.

BidangTipeDiperlukanDeskripsi
codestringYaString kode mentah yang akan ditampilkan.
languageCodeLanguageTidakBahasa penyorotan sintaks. Default ke typescript.
themeCodeThemeTidakTema warna editor. Default ke github-dark.
showCopybooleanTidakTampilkan tombol salin di output yang dirender.
syncKeystringTidakBlok yang berbagi kunci berganti bahasa bersama-sama.
variantsCodeVariant[]TidakBila tidak kosong, merender deretan tab varian dan menjadi sumber otoritatif.
JSON
{
  "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.

BidangTipeDiperlukanDeskripsi
htmlstringYaJudul bagian sebagai HTML sebaris.
openbooleanTidakApakah bagian dirender dalam keadaan terbuka.
childrenBlock[]TidakBlok anak bersarang.
JSON
{
  "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.

BidangTipeDiperlukanDeskripsi
collectionIdstringYaId koleksi yang disematkan. Satu-satunya hal yang disimpan.
JSON
{
  "type": "collection",
  "data": { "collectionId": "c-42" }
}

columns

Tata letak multikolom berisi 2 sampai 4 kolom, masing-masing memegang daftar blok anaknya sendiri.

BidangTipeDiperlukanDeskripsi
columnsBlock[][]YaKolom-kolomnya, masing-masing daftar blok anak. Dua sampai empat kolom.
JSON
{
  "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.

BidangTipeDiperlukanDeskripsi
datestringYaTanggal ISO dalam bentuk yyyy-MM-dd, tanpa zona waktu.
JSON
{
  "type": "date",
  "data": { "date": "2026-08-31" }
}

delimiter

Pemisah visual antar bagian.

BidangTipeDiperlukanDeskripsi
variant'line' | 'stars'YaGaya visual dari pemisah. Salah satu dari: line, stars.
JSON
{
  "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.

BidangTipeDiperlukanDeskripsi
pageIdstringYaId halaman yang dirujuk; identitas kartu.
titlestringYaCuplikan tampilan judul halaman.
iconstringTidakIkon opsional yang ditampilkan di kartu.
descriptionstringTidakDeskripsi opsional yang ditampilkan di bawah judul.
JSON
{
  "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.

BidangTipeDiperlukanDeskripsi
urlstringYaTautan yang disematkan. Penyedia dan markup sematan diturunkan darinya saat render.
titlestringTidakCuplikan unfurl untuk kartu tautan.
descriptionstringTidakDeskripsi unfurl untuk kartu tautan.
imageUrlstringTidakGambar pratinjau unfurl untuk kartu tautan.
display'card'Tidak"card" untuk menampilkan kartu tautan meski tampilan langsung tersedia.
fileobjectTidakNama, jenis, dan ikon file Drive, dari akun Google penempel.
gistobjectTidakFile gist saat ditempel, digambar sebagai kode di tempat tampilan GitHub tidak dapat dimuat.
reasonstringTidakMengapa tampilan langsung tidak ditampilkan: connect_google, no_access, provider_unreachable, atau switched_off.
issueobjectTidakTautan isu yang ditampilkan sebagai kartu: snapshot terakhir yang dibaca (tool, key, title, stateName, category, assigneeName, updatedAt, reason).
JSON
{
  "type": "embed",
  "data": { "url": "https://www.youtube.com/watch?v=abc123" }
}

file

Lampiran berkas dengan tautan unduh, nama, serta ukuran dan tipe konten opsional.

BidangTipeDiperlukanDeskripsi
urlstringYaTempat berkas disajikan.
namestringYaNama berkas yang ditampilkan pada lampiran.
sizenumberTidakUkuran berkas dalam byte.
contentTypestringTidakTipe MIME berkas.
JSON
{
  "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.

BidangTipeDiperlukanDeskripsi
rowsGlanceRow[]YaFakta yang ditampilkan: setiap baris adalah label dan nilai HTML sebaris.
captionstringTidakKeterangan opsional di atas baris.
variant'plain' | 'error' | 'info' | 'success' | 'warning'TidakVarian latar; plain tanpa gaya, sisanya mengikuti palet alert.
JSON
{
  "type": "glance",
  "data": {
    "caption": "Facts",
    "rows": [{ "label": "Version", "html": "<b>1.0</b>" }],
    "variant": "plain"
  }
}

Judul tingkat atas dan judul bagian (h1 hingga h6). Alat inline berfungsi di dalam muatan html.

BidangTipeDiperlukanDeskripsi
htmlstringYaKonten HTML dari heading. Markup alat inline didukung.
level'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'TidakTingkat heading. Salah satu dari: h1, h2, h3, h4, h5, h6. Default ke h1.
JSON
{
  "type": "header",
  "data": { "html": "Getting started", "level": "h2" }
}

image

Blok gambar dengan keterangan dan teks alt. Dikonsumsi melalui callback imageUploader pada Editor.create.

BidangTipeDiperlukanDeskripsi
urlstringYaURL gambar yang akan disematkan.
captionstringTidakKeterangan teks biasa yang ditampilkan di bawah gambar.
altstringTidakTeks alt untuk elemen gambar.
alignment'center' | 'left' | 'right'TidakPerataan horizontal dari gambar. Salah satu dari: center, left, right.
JSON
{
  "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.

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

latex

Matematika LaTeX, disimpan sebagai sumber dan ditata saat render. Renderer yang lebih baik nanti memperbaiki setiap dokumen yang sudah ada.

BidangTipeDiperlukanDeskripsi
sourcestringYaSumber LaTeX. Disimpan sebagai sumber, tidak pernah sebagai keluaran yang dirender.
JSON
{
  "type": "latex",
  "data": { "source": "\\frac{a}{b}" }
}

list

Daftar berurutan atau tidak berurutan. Setiap item adalah html.

BidangTipeDiperlukanDeskripsi
type'ordered' | 'unordered'YaTipe daftar. Salah satu dari: ordered, unordered.
itemsstring[]YaArray string HTML, satu per item daftar.
JSON
{
  "type": "list",
  "data": { "type": "unordered", "items": ["First item", "Second item"] }
}

mermaid

Diagram Mermaid, disimpan sebagai sumber dan digambar saat ditampilkan, tidak pernah sebagai raster.

BidangTipeDiperlukanDeskripsi
sourcestringYaSumber Mermaid. Disimpan sebagai sumber, tidak pernah sebagai keluaran yang digambar.
JSON
{
  "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.

BidangTipeDiperlukanDeskripsi
specobjectTidakDokumen OpenAPI 3.x sebaris. Menang atas url bila keduanya diatur.
urlstringTidakTempat mengambil dokumen OpenAPI saat render.
includeOpenApiFilterTidakFilter operasi mana yang dirender.
excludeOpenApiFilterTidakFilter operasi mana yang disembunyikan.
defaultServerstringTidakServer mana yang dipilih referensi secara bawaan.
snippetLanguagesCodeLanguage[]TidakBahasa yang ditawarkan untuk cuplikan permintaan.
JSON
{
  "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.

BidangTipeDiperlukanDeskripsi
htmlstringYaKonten HTML dari paragraf. Markup alat inline didukung.
JSON
{
  "type": "paragraph",
  "data": { "html": "This is a <b>paragraph</b> with inline markup." }
}

quote

Blockquote dengan atribusi penulis opsional.

BidangTipeDiperlukanDeskripsi
htmlstringYaKonten HTML dari isi kutipan. Markup alat inline didukung.
authorstringTidakAtribusi teks biasa atau HTML yang ditampilkan di bawah kutipan.
JSON
{
  "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.

BidangTipeDiperlukanDeskripsi
strokesSketchStroke[]YaGambar sebagai goresan: setiap goresan adalah daftar titik dengan warna dan lebar opsional.
JSON
{
  "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.

BidangTipeDiperlukanDeskripsi
datastring[][]YaArray dua dimensi dari string sel HTML. Baris pertama adalah baris header.
captionstringTidakKeterangan teks biasa atau HTML yang ditampilkan di bawah tabel.
showDownloadbooleanTidakTampilkan tombol unduh di output yang dirender.
JSON
{
  "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.

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

updates

Umpan aktivitas langsung untuk sebuah dokumen. Ia menyimpan identitas, tidak pernah cuplikan, sehingga terus menampilkan aktivitas terkini.

BidangTipeDiperlukanDeskripsi
pageIdstringTidakAktivitas dokumen mana yang ditampilkan. Jika kosong berarti dokumen tempat blok berada.
JSON
{
  "type": "updates",
  "data": { "pageId": "p-7" }
}

video

Blok video. Dikonsumsi melalui callback videoUploader pada Editor.create.

BidangTipeDiperlukanDeskripsi
urlstringYaURL file video atau tautan embed YouTube/Vimeo.
captionstringTidakKeterangan teks biasa yang ditampilkan di bawah pemutar.
altstringTidakLabel yang dapat diakses untuk elemen video.
alignment'center' | 'left' | 'right'TidakPerataan horizontal dari pemutar. Salah satu dari: center, left, right.
JSON
{
  "type": "video",
  "data": { "url": "/media/demo.mp4", "caption": "Product demo", "alignment": "center" }
}