Chuyển đến nội dung chính

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.

JSON
{
  "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ườngKiểuBắt buộcMô tả
htmlstringCó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.
JSON
{
  "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ườngKiểuBắt buộcMô tả
urlstringCóURL của tệp âm thanh cần nhúng.
captionstringKhôngChú thích văn bản thuần hiển thị bên dưới trình phát.
altstringKhôngNhãn có thể truy cập cho phần tử âm thanh.
alignment'center' | 'left' | 'right'KhôngCăn chỉnh ngang của trình phát. Một trong: center, left, right.
JSON
{
  "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ườngKiểuBắt buộcMô tả
itemsChecklistItem[]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[].textstringCóNội dung HTML của nhãn mục.
items[].checkedbooleanCóHộp kiểm có được chọn hay không.
JSON
{
  "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ườngKiểuBắt buộcMô tả
codestringCóChuỗi mã nguồn thô để hiển thị.
languageCodeLanguageKhôngNgôn ngữ tô sáng cú pháp. Mặc định là typescript.
themeCodeThemeKhôngChủ đề màu sắc của trình soạn thảo. Mặc định là github-dark.
showCopybooleanKhôngHiển thị nút sao chép trong đầu ra được kết xuất.
syncKeystringKhôngCác khối dùng chung một khóa sẽ chuyển ngôn ngữ cùng nhau.
variantsCodeVariant[]KhôngKhi không rỗng, hiển thị dải tab các biến thể và là nguồn có thẩm quyền.
JSON
{
  "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ườngKiểuBắt buộcMô tả
htmlstringCóTiêu đề của mục dưới dạng HTML nội dòng.
openbooleanKhôngMục có được hiển thị ở trạng thái mở rộng hay không.
childrenBlock[]KhôngCác khối con lồng nhau.
JSON
{
  "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ườngKiểuBắt buộcMô tả
collectionIdstringCóId của bộ sưu tập được nhúng. Thứ duy nhất được lưu.
JSON
{
  "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ườngKiểuBắt buộcMô tả
columnsBlock[][]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.
JSON
{
  "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ườngKiểuBắt buộcMô tả
datestringCóNgày ISO ở dạng yyyy-MM-dd, không kèm múi giờ.
JSON
{
  "type": "date",
  "data": { "date": "2026-08-31" }
}

delimiter

Dấu phân cách trực quan giữa các phần.

TrườngKiểuBắt buộcMô tả
variant'line' | 'stars'CóKiểu hiển thị của dải phân cách. Một trong: line, stars.
JSON
{
  "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ườngKiểuBắt buộcMô tả
pageIdstringCóId của trang được tham chiếu; danh tính của thẻ.
titlestringCóẢnh chụp hiển thị của tiêu đề trang.
iconstringKhôngBiểu tượng tùy chọn hiển thị trên thẻ.
descriptionstringKhôngMô tả tùy chọn hiển thị dưới tiêu đề.
JSON
{
  "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ườngKiểuBắt buộcMô tả
urlstringCó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ị.
titlestringKhôngẢnh chụp unfurl cho thẻ liên kết.
descriptionstringKhôngMô tả unfurl cho thẻ liên kết.
imageUrlstringKhô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.
fileobjectKhôngTê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.
gistobjectKhôngCá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.
reasonstringKhôngVì sao xem trực tiếp không được hiển thị: connect_google, no_access, provider_unreachable hoặc switched_off.
issueobjectKhôngMộ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).
JSON
{
  "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ườngKiểuBắt buộcMô tả
urlstringCóNơi tệp được phục vụ.
namestringCóTên tệp hiển thị trên phần đính kèm.
sizenumberKhôngKích thước tệp tính bằng byte.
contentTypestringKhôngLoại MIME của tệp.
JSON
{
  "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ườngKiểuBắt buộcMô tả
rowsGlanceRow[]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.
captionstringKhôngChú thích tùy chọn phía trên các hàng.
variant'plain' | 'error' | 'info' | 'success' | 'warning'KhôngBiế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.
JSON
{
  "type": "glance",
  "data": {
    "caption": "Facts",
    "rows": [{ "label": "Version", "html": "<b>1.0</b>" }],
    "variant": "plain"
  }
}

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ườngKiểuBắt buộcMô tả
htmlstringCó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ôngCấp độ tiêu đề. Một trong: h1, h2, h3, h4, h5, h6. Mặc định là h1.
JSON
{
  "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ườngKiểuBắt buộcMô tả
urlstringCóURL của hình ảnh cần nhúng.
captionstringKhôngChú thích văn bản thuần hiển thị bên dưới hình ảnh.
altstringKhôngVăn bản alt cho phần tử hình ảnh.
alignment'center' | 'left' | 'right'KhôngCăn chỉnh ngang của hình ảnh. Một trong: center, left, right.
JSON
{
  "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ị.

JSON
{
  "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ườngKiểuBắt buộcMô tả
sourcestringCóMã nguồn LaTeX. Được lưu dưới dạng nguồn, không bao giờ là kết quả đã hiển thị.
JSON
{
  "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ườngKiểuBắt buộcMô tả
type'ordered' | 'unordered'CóLoại danh sách. Một trong: ordered, unordered.
itemsstring[]CóMảng các chuỗi HTML, một chuỗi cho mỗi mục danh sách.
JSON
{
  "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ườngKiểuBắt buộcMô tả
sourcestringCóMã nguồn Mermaid. Được lưu dưới dạng nguồn, không bao giờ là kết quả đã vẽ.
JSON
{
  "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ườngKiểuBắt buộcMô tả
specobjectKhôngMột tài liệu OpenAPI 3.x nội tuyến. Được ưu tiên hơn url khi cả hai được đặt.
urlstringKhôngNơi tải tài liệu OpenAPI lúc hiển thị.
includeOpenApiFilterKhôngBộ lọc các thao tác sẽ được hiển thị.
excludeOpenApiFilterKhôngBộ lọc các thao tác sẽ bị ẩn.
defaultServerstringKhôngMáy chủ mà tài liệu tham chiếu chọn mặc định.
snippetLanguagesCodeLanguage[]KhôngCác ngôn ngữ được cung cấp cho đoạn mã yêu cầu.
JSON
{
  "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ườngKiểuBắt buộcMô tả
htmlstringCóNội dung HTML của đoạn văn. Đánh dấu công cụ nội tuyến được hỗ trợ.
JSON
{
  "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ườngKiểuBắt buộcMô tả
htmlstringCó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ợ.
authorstringKhôngGhi công bằng văn bản thuần hoặc HTML hiển thị bên dưới trích dẫn.
JSON
{
  "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ườngKiểuBắt buộcMô tả
strokesSketchStroke[]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.
JSON
{
  "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ườngKiểuBắt buộcMô tả
datastring[][]CóMảng hai chiều của các chuỗi ô HTML. Hàng đầu tiên là hàng tiêu đề.
captionstringKhôngChú thích văn bản thuần hoặc HTML hiển thị bên dưới bảng.
showDownloadbooleanKhôngHiển thị nút tải xuống trong đầu ra được kết xuất.
JSON
{
  "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ị.

JSON
{
  "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ườngKiểuBắt buộcMô tả
pageIdstringKhôngHiể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.
JSON
{
  "type": "updates",
  "data": { "pageId": "p-7" }
}

video

Khối video. Được xử lý qua callback videoUploader trên Editor.create.

TrườngKiểuBắt buộcMô tả
urlstringCóURL của tệp video hoặc liên kết nhúng YouTube/Vimeo.
captionstringKhôngChú thích văn bản thuần hiển thị bên dưới trình phát.
altstringKhôngNhãn có thể truy cập cho phần tử video.
alignment'center' | 'left' | 'right'KhôngCăn chỉnh ngang của trình phát. Một trong: center, left, right.
JSON
{
  "type": "video",
  "data": { "url": "/media/demo.mp4", "caption": "Product demo", "alignment": "center" }
}