Tham chiếu khối
Trang này ghi lại mọi loại khối mà trình soạn thảo đi kèm. Mỗi khối có một cấu trúc JSON, một trình hiển thị và một đường chèn bằng mã qua editor.blocks.insert.
Tất cả các khối dùng chung một lớp bao bọc khi được tuần tự hóa: id, type, data và một bản ghi tunes tùy chọn.
Cấu trúc của khối
Mọi khối đều được tuần tự hóa vào cùng một phong bì JSON. id được chỉ định bởi trình soạn thảo và có thể bỏ qua khi xây dựng dữ liệu theo lập trình.
{
"id": "abc123",
"type": "paragraph",
"data": { "html": "Hello <b>world</b>" },
"tunes": {}
}alert
Hộp chú thích được tô sáng với 4 biến thể.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| html | string | Có | Nội dung HTML của thông báo cảnh báo. Đánh dấu công cụ nội tuyến được hỗ trợ. |
| variant | 'error' | 'info' | 'success' | 'warning' | Có | Kiểu hiển thị của cảnh báo. Một trong: error, info, success, warning. |
{
"type": "alert",
"data": { "html": "Your session will expire in 5 minutes.", "variant": "warning" }
}audio
Khối âm thanh. Được xử lý qua callback audioUploader trên Editor.create.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| url | string | Có | URL của tệp âm thanh cần nhúng. |
| caption | string | Không | Chú thích văn bản thuần hiển thị bên dưới trình phát. |
| alt | string | Không | Nhãn có thể truy cập cho phần tử âm thanh. |
| alignment | 'center' | 'left' | 'right' | Không | Căn chỉnh ngang của trình phát. Một trong: center, left, right. |
{
"type": "audio",
"data": { "url": "/media/podcast.mp3", "caption": "Episode 12", "alignment": "center" }
}checklist
Danh sách hộp kiểm tương tác với trạng thái đã chọn cho từng mục.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| items | ChecklistItem[] | Có | Mảng các mục danh sách kiểm tra, mỗi mục có text và trạng thái checked. |
| items[].text | string | Có | Nội dung HTML của nhãn mục. |
| items[].checked | boolean | Có | Hộp kiểm có được chọn hay không. |
{
"type": "checklist",
"data": {
"items": [
{ "text": "Install the package", "checked": true },
{ "text": "Mount the editor", "checked": false }
]
}
}code
Khối mã có tô sáng cú pháp. Hỗ trợ 50 ngôn ngữ, bao gồm typescript, python, rust, go, ruby, swift và kotlin.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| code | string | Có | Chuỗi mã nguồn thô để hiển thị. |
| language | CodeLanguage | Không | Ngôn ngữ tô sáng cú pháp. Mặc định là typescript. |
| theme | CodeTheme | Không | Chủ đề màu sắc của trình soạn thảo. Mặc định là github-dark. |
| showCopy | boolean | Không | Hiển thị nút sao chép trong đầu ra được kết xuất. |
| syncKey | string | Không | Các khối dùng chung một khóa sẽ chuyển ngôn ngữ cùng nhau. |
| variants | CodeVariant[] | Không | Khi không rỗng, hiển thị dải tab các biến thể và là nguồn có thẩm quyền. |
{
"type": "code",
"data": { "code": "const x = 42;", "language": "typescript", "theme": "github-dark", "showCopy": true }
}collapsible
Một mục có thể thu gọn với tiêu đề và các khối con lồng nhau. Các loại khối con không xác định được giữ nguyên vẹn, nên tài liệu mới hơn vẫn hoạt động trên trình hiển thị cũ hơn.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| html | string | Có | Tiêu đề của mục dưới dạng HTML nội dòng. |
| open | boolean | Không | Mục có được hiển thị ở trạng thái mở rộng hay không. |
| children | Block[] | Không | Các khối con lồng nhau. |
{
"type": "collapsible",
"data": {
"html": "Details",
"open": true,
"children": [{ "type": "paragraph", "data": { "html": "Hidden until opened." } }]
}
}collection
Nhúng một khung xem bộ sưu tập trực tiếp theo id. Khối chỉ lưu danh tính của bộ sưu tập; máy chủ sở hữu cấu trúc và dữ liệu.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| collectionId | string | Có | Id của bộ sưu tập được nhúng. Thứ duy nhất được lưu. |
{
"type": "collection",
"data": { "collectionId": "c-42" }
}columns
Bố cục nhiều cột từ 2 đến 4 cột, mỗi cột giữ danh sách khối con của riêng nó.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| columns | Block[][] | Có | Các cột, mỗi cột là một danh sách khối con. Từ hai đến bốn cột. |
{
"type": "columns",
"data": {
"columns": [
[{ "type": "paragraph", "data": { "html": "Left" } }],
[{ "type": "paragraph", "data": { "html": "Right" } }]
]
}
}date
Một ngày trên lịch, được lưu không kèm múi giờ để mọi cộng tác viên đều thống nhất.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| date | string | Có | Ngày ISO ở dạng yyyy-MM-dd, không kèm múi giờ. |
{
"type": "date",
"data": { "date": "2026-08-31" }
}delimiter
Dấu phân cách trực quan giữa các phần.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| variant | 'line' | 'stars' | Có | Kiểu hiển thị của dải phân cách. Một trong: line, stars. |
{
"type": "delimiter",
"data": { "variant": "line" }
}doc_card
Một thẻ liên kết phong phú trỏ đến tài liệu khác. Nó lưu id của trang được tham chiếu cùng một ảnh chụp hiển thị mà máy chủ làm mới khi đổi tên.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| pageId | string | Có | Id của trang được tham chiếu; danh tính của thẻ. |
| title | string | Có | Ảnh chụp hiển thị của tiêu đề trang. |
| icon | string | Không | Biểu tượng tùy chọn hiển thị trên thẻ. |
| description | string | Không | Mô tả tùy chọn hiển thị dưới tiêu đề. |
{
"type": "doc_card",
"data": { "pageId": "p-7", "title": "Release notes", "icon": "📄" }
}embed
Một liên kết được nhúng. Khối lưu URL; nhà cung cấp và mã nhúng được suy ra lúc hiển thị, các trường unfurl làm thẻ dự phòng.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| url | string | Có | Liên kết được nhúng. Nhà cung cấp và mã nhúng được suy ra từ nó lúc hiển thị. |
| title | string | Không | Ảnh chụp unfurl cho thẻ liên kết. |
| description | string | Không | Mô tả unfurl cho thẻ liên kết. |
| imageUrl | string | Không | Ảnh xem trước unfurl cho thẻ liên kết. |
| display | 'card' | Không | "card" để hiển thị thẻ liên kết ngay cả khi có xem trực tiếp. |
| file | object | Không | Tên, loại và biểu tượng của tệp Drive, từ tài khoản Google của người dán. |
| gist | object | Không | Các tệp của gist tại thời điểm dán, được vẽ dưới dạng mã ở nơi không tải được giao diện của GitHub. |
| reason | string | Không | Vì sao xem trực tiếp không được hiển thị: connect_google, no_access, provider_unreachable hoặc switched_off. |
| issue | object | Không | Một liên kết issue hiển thị dạng thẻ: ảnh chụp đọc gần nhất (tool, key, title, stateName, category, assigneeName, updatedAt, reason). |
{
"type": "embed",
"data": { "url": "https://www.youtube.com/watch?v=abc123" }
}file
Một tệp đính kèm với liên kết tải xuống, tên, cùng kích thước và loại nội dung tùy chọn.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| url | string | Có | Nơi tệp được phục vụ. |
| name | string | Có | Tên tệp hiển thị trên phần đính kèm. |
| size | number | Không | Kích thước tệp tính bằng byte. |
| contentType | string | Không | Loại MIME của tệp. |
{
"type": "file",
"data": { "url": "/files/notes.pdf", "name": "notes.pdf", "size": 2048, "contentType": "application/pdf" }
}glance
Một bảng tóm tắt nhãn và giá trị: các hàng dữ kiện đọc được trong nháy mắt, với chú thích và biến thể nền tùy chọn.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| rows | GlanceRow[] | Có | Các dữ kiện cần hiển thị: mỗi hàng là một nhãn và một giá trị HTML nội dòng. |
| caption | string | Không | Chú thích tùy chọn phía trên các hàng. |
| variant | 'plain' | 'error' | 'info' | 'success' | 'warning' | Không | Biến thể nền; plain không có kiểu, các biến thể còn lại khớp với bảng màu cảnh báo. |
{
"type": "glance",
"data": {
"caption": "Facts",
"rows": [{ "label": "Version", "html": "<b>1.0</b>" }],
"variant": "plain"
}
}header
Tiêu đề cấp cao nhất và tiêu đề mục (h1 đến h6). Các công cụ nội tuyến hoạt động bên trong payload html.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| html | string | Có | Nội dung HTML của tiêu đề. Đánh dấu công cụ nội tuyến được hỗ trợ. |
| level | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | Không | Cấp độ tiêu đề. Một trong: h1, h2, h3, h4, h5, h6. Mặc định là h1. |
{
"type": "header",
"data": { "html": "Getting started", "level": "h2" }
}image
Khối hình ảnh với chú thích và văn bản alt. Được xử lý qua callback imageUploader trên Editor.create.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| url | string | Có | URL của hình ảnh cần nhúng. |
| caption | string | Không | Chú thích văn bản thuần hiển thị bên dưới hình ảnh. |
| alt | string | Không | Văn bản alt cho phần tử hình ảnh. |
| alignment | 'center' | 'left' | 'right' | Không | Căn chỉnh ngang của hình ảnh. Một trong: center, left, right. |
{
"type": "image",
"data": { "url": "/img/hero.jpg", "caption": "Hero image", "alt": "A hero", "alignment": "center" }
}issues
Bảng các issue được liên kết, suy ra lúc hiển thị từ các chip và thẻ issue trên trang (issue, tiêu đề, trạng thái, người phụ trách). Nó không lưu dữ liệu riêng.
Khối này không lưu trường nào; các hàng được suy ra từ các chip và thẻ issue trên trang lúc hiển thị.
{
"type": "issues",
"data": {}
}latex
Toán LaTeX, được lưu dưới dạng mã nguồn và sắp chữ lúc hiển thị. Một trình hiển thị tốt hơn sau này sẽ cải thiện mọi tài liệu đã tồn tại.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| source | string | Có | Mã nguồn LaTeX. Được lưu dưới dạng nguồn, không bao giờ là kết quả đã hiển thị. |
{
"type": "latex",
"data": { "source": "\\frac{a}{b}" }
}list
Danh sách có thứ tự hoặc không có thứ tự. Mỗi mục là html.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| type | 'ordered' | 'unordered' | Có | Loại danh sách. Một trong: ordered, unordered. |
| items | string[] | Có | Mảng các chuỗi HTML, một chuỗi cho mỗi mục danh sách. |
{
"type": "list",
"data": { "type": "unordered", "items": ["First item", "Second item"] }
}mermaid
Một sơ đồ Mermaid, được lưu dưới dạng mã nguồn và vẽ lúc hiển thị, không bao giờ là ảnh raster.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| source | string | Có | Mã nguồn Mermaid. Được lưu dưới dạng nguồn, không bao giờ là kết quả đã vẽ. |
{
"type": "mermaid",
"data": { "source": "flowchart TD\n A --> B" }
}openapi
Hiển thị tài liệu tham chiếu API tương tác từ một tài liệu OpenAPI 3.x, nội tuyến hoặc tải từ URL, với bộ chọn máy chủ và đoạn mã.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| spec | object | Không | Một tài liệu OpenAPI 3.x nội tuyến. Được ưu tiên hơn url khi cả hai được đặt. |
| url | string | Không | Nơi tải tài liệu OpenAPI lúc hiển thị. |
| include | OpenApiFilter | Không | Bộ lọc các thao tác sẽ được hiển thị. |
| exclude | OpenApiFilter | Không | Bộ lọc các thao tác sẽ bị ẩn. |
| defaultServer | string | Không | Máy chủ mà tài liệu tham chiếu chọn mặc định. |
| snippetLanguages | CodeLanguage[] | Không | Các ngôn ngữ được cung cấp cho đoạn mã yêu cầu. |
{
"type": "openapi",
"data": { "url": "/api/openapi.json", "defaultServer": "https://api.example.com" }
}paragraph
Đoạn văn bản định dạng phong phú. Chấp nhận đánh dấu công cụ nội tuyến như bold, italic, code, link, marker và tooltip.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| html | string | Có | Nội dung HTML của đoạn văn. Đánh dấu công cụ nội tuyến được hỗ trợ. |
{
"type": "paragraph",
"data": { "html": "This is a <b>paragraph</b> with inline markup." }
}quote
Khối trích dẫn với phần ghi nguồn tác giả tùy chọn.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| html | string | Có | Nội dung HTML của phần thân trích dẫn. Đánh dấu công cụ nội tuyến được hỗ trợ. |
| author | string | Không | Ghi công bằng văn bản thuần hoặc HTML hiển thị bên dưới trích dẫn. |
{
"type": "quote",
"data": { "html": "The best way to predict the future is to invent it.", "author": "Alan Kay" }
}sketch
Một bản vẽ tay được lưu dưới dạng nét vẽ, không bao giờ là ảnh raster, nên luôn chỉnh sửa được và phóng to sắc nét.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| strokes | SketchStroke[] | Có | Bản vẽ dưới dạng nét: mỗi nét là một danh sách điểm với màu và độ rộng tùy chọn. |
{
"type": "sketch",
"data": { "strokes": [{ "points": [0, 0, 10, 10], "color": "#ff0000", "width": 3 }] }
}table
Lưới dữ liệu. Hàng đầu tiên có thể được dùng làm tiêu đề; mỗi ô là html.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| data | string[][] | Có | Mảng hai chiều của các chuỗi ô HTML. Hàng đầu tiên là hàng tiêu đề. |
| caption | string | Không | Chú thích văn bản thuần hoặc HTML hiển thị bên dưới bảng. |
| showDownload | boolean | Không | Hiển thị nút tải xuống trong đầu ra được kết xuất. |
{
"type": "table",
"data": {
"data": [["Name", "Type"], ["html", "string"], ["variant", "AlertVariant"]],
"caption": "AlertData fields",
"showDownload": false
}
}toc
Mục lục được suy ra từ các tiêu đề của tài liệu lúc hiển thị. Nó không lưu dữ liệu riêng.
Khối này không lưu trường nào; danh sách được suy ra từ các tiêu đề của tài liệu lúc hiển thị.
{
"type": "toc",
"data": {}
}updates
Một nguồn cấp hoạt động trực tiếp cho tài liệu. Nó lưu danh tính, không bao giờ là ảnh chụp, nên luôn hiển thị hoạt động hiện tại.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| pageId | string | Không | Hiển thị hoạt động của tài liệu nào. Không có nghĩa là tài liệu chứa khối này. |
{
"type": "updates",
"data": { "pageId": "p-7" }
}video
Khối video. Được xử lý qua callback videoUploader trên Editor.create.
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| url | string | Có | URL của tệp video hoặc liên kết nhúng YouTube/Vimeo. |
| caption | string | Không | Chú thích văn bản thuần hiển thị bên dưới trình phát. |
| alt | string | Không | Nhãn có thể truy cập cho phần tử video. |
| alignment | 'center' | 'left' | 'right' | Không | Căn chỉnh ngang của trình phát. Một trong: center, left, right. |
{
"type": "video",
"data": { "url": "/media/demo.mp4", "caption": "Product demo", "alignment": "center" }
}