본문 내용으로 건너뛰기

블록 참조

이 페이지는 에디터가 제공하는 모든 블록 유형을 기록합니다. 모든 블록에는 JSON 형태, 렌더러, editor.blocks.insert를 통한 프로그래밍 방식 삽입 경로가 있습니다.

모든 블록은 직렬화될 때 동일한 엔벨로프를 공유합니다: id, type, data 및 선택적 tunes 레코드.

블록의 형태

모든 블록은 동일한 JSON 엔벨로프로 직렬화됩니다. id는 에디터가 할당하며 데이터를 프로그래밍 방식으로 구성할 때 생략할 수 있습니다.

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

alert

4가지 변형이 있는 강조 콜아웃 박스.

필드타입필수설명
htmlstring예알림 메시지의 HTML 콘텐츠. 인라인 도구 마크업이 지원됩니다.
variant'error' | 'info' | 'success' | 'warning'예알림의 시각적 스타일. 다음 중 하나: error, info, success, warning.
JSON
{
  "type": "alert",
  "data": { "html": "Your session will expire in 5 minutes.", "variant": "warning" }
}

audio

오디오 블록. Editor.create의 audioUploader 콜백을 통해 처리됩니다.

필드타입필수설명
urlstring예임베드할 오디오 파일의 URL.
captionstring아니요플레이어 아래에 표시되는 일반 텍스트 캡션.
altstring아니요오디오 요소의 접근 가능한 레이블.
alignment'center' | 'left' | 'right'아니요플레이어의 수평 정렬. 다음 중 하나: center, left, right.
JSON
{
  "type": "audio",
  "data": { "url": "/media/podcast.mp3", "caption": "Episode 12", "alignment": "center" }
}

checklist

항목별 체크 상태를 가진 대화형 체크박스 목록.

필드타입필수설명
itemsChecklistItem[]예체크리스트 항목의 배열, 각각 text와 checked 상태를 가집니다.
items[].textstring예항목 레이블의 HTML 콘텐츠.
items[].checkedboolean예체크박스가 체크되어 있는지 여부.
JSON
{
  "type": "checklist",
  "data": {
    "items": [
      { "text": "Install the package", "checked": true },
      { "text": "Mount the editor", "checked": false }
    ]
  }
}

code

구문 강조가 적용된 코드 블록. typescript, python, rust, go, ruby, swift, kotlin을 포함해 50개 언어를 지원합니다.

필드타입필수설명
codestring예표시할 원시 코드 문자열.
languageCodeLanguage아니요구문 강조 언어. 기본값은 typescript입니다.
themeCodeTheme아니요에디터 색상 테마. 기본값은 github-dark입니다.
showCopyboolean아니요렌더링된 출력에 복사 버튼을 표시합니다.
syncKeystring아니요키를 공유하는 블록은 언어를 함께 전환합니다.
variantsCodeVariant[]아니요비어 있지 않으면 변형의 탭 스트립을 렌더링하며, 권위 있는 소스가 됩니다.
JSON
{
  "type": "code",
  "data": { "code": "const x = 42;", "language": "typescript", "theme": "github-dark", "showCopy": true }
}

collapsible

제목과 중첩된 자식 블록이 있는 접을 수 있는 섹션입니다. 알 수 없는 자식 블록 유형은 그대로 보존되므로 최신 문서가 이전 렌더러에서도 살아남습니다.

필드타입필수설명
htmlstring예인라인 HTML 형식의 섹션 제목입니다.
openboolean아니요섹션을 펼친 상태로 렌더링할지 여부입니다.
childrenBlock[]아니요중첩된 자식 블록입니다.
JSON
{
  "type": "collapsible",
  "data": {
    "html": "Details",
    "open": true,
    "children": [{ "type": "paragraph", "data": { "html": "Hidden until opened." } }]
  }
}

collection

id로 실시간 컬렉션 뷰를 삽입합니다. 블록은 컬렉션의 신원만 저장하며, 형태와 데이터는 서버가 소유합니다.

필드타입필수설명
collectionIdstring예삽입된 컬렉션의 id입니다. 저장되는 유일한 값입니다.
JSON
{
  "type": "collection",
  "data": { "collectionId": "c-42" }
}

columns

2개에서 4개의 열로 구성된 다단 레이아웃이며, 각 열은 자체 자식 블록 목록을 가집니다.

필드타입필수설명
columnsBlock[][]예각 열은 자식 블록의 목록입니다. 2개에서 4개의 열입니다.
JSON
{
  "type": "columns",
  "data": {
    "columns": [
      [{ "type": "paragraph", "data": { "html": "Left" } }],
      [{ "type": "paragraph", "data": { "html": "Right" } }]
    ]
  }
}

date

달력 날짜입니다. 시간대 없이 저장되므로 모든 공동 작업자가 같은 날짜를 보게 됩니다.

필드타입필수설명
datestring예yyyy-MM-dd 형식의 ISO 날짜이며 시간대가 없습니다.
JSON
{
  "type": "date",
  "data": { "date": "2026-08-31" }
}

delimiter

섹션 사이의 시각적 구분선.

필드타입필수설명
variant'line' | 'stars'예구분선의 시각적 스타일. 다음 중 하나: line, stars.
JSON
{
  "type": "delimiter",
  "data": { "variant": "line" }
}

doc_card

다른 문서를 가리키는 리치 링크 카드입니다. 참조된 페이지 id와 표시 스냅숏을 저장하며, 이름이 바뀌면 호스트가 스냅숏을 새로 고칩니다.

필드타입필수설명
pageIdstring예참조된 페이지의 id로, 카드의 신원입니다.
titlestring예페이지 제목의 표시 스냅숏입니다.
iconstring아니요카드에 표시되는 선택적 아이콘입니다.
descriptionstring아니요제목 아래에 표시되는 선택적 설명입니다.
JSON
{
  "type": "doc_card",
  "data": { "pageId": "p-7", "title": "Release notes", "icon": "📄" }
}

embed

삽입된 링크입니다. 블록은 URL을 저장하며, 제공자와 삽입 마크업은 렌더링 시점에 도출됩니다. 언펄 필드는 대체 카드로 쓰입니다.

필드타입필수설명
urlstring예삽입된 링크입니다. 제공자와 삽입 마크업은 렌더링 시점에 이 값에서 도출됩니다.
titlestring아니요링크 카드를 위한 언펄 스냅숏입니다.
descriptionstring아니요링크 카드를 위한 언펄 설명입니다.
imageUrlstring아니요링크 카드를 위한 언펄 미리보기 이미지입니다.
display'card'아니요라이브 보기가 있어도 링크 카드를 표시하는 "card".
fileobject아니요붙여 넣은 사람의 Google 계정에서 가져온 Drive 파일의 이름, 유형, 아이콘.
gistobject아니요붙여 넣은 시점의 gist 파일. GitHub 자체 보기를 불러올 수 없는 곳에서는 코드로 그립니다.
reasonstring아니요라이브 보기가 표시되지 않는 이유: connect_google, no_access, provider_unreachable 또는 switched_off.
issueobject아니요카드로 표시되는 이슈 링크: 마지막으로 읽은 스냅샷(tool, key, title, stateName, category, assigneeName, updatedAt, reason).
JSON
{
  "type": "embed",
  "data": { "url": "https://www.youtube.com/watch?v=abc123" }
}

file

다운로드 링크, 이름, 선택적 크기와 콘텐츠 유형을 갖춘 파일 첨부입니다.

필드타입필수설명
urlstring예파일이 제공되는 위치입니다.
namestring예첨부에 표시되는 파일 이름입니다.
sizenumber아니요바이트 단위의 파일 크기입니다.
contentTypestring아니요파일의 MIME 유형입니다.
JSON
{
  "type": "file",
  "data": { "url": "/files/notes.pdf", "name": "notes.pdf", "size": 2048, "contentType": "application/pdf" }
}

glance

레이블과 값의 요약 패널입니다. 한눈에 읽히는 사실 행으로, 선택적 캡션과 배경 변형을 지원합니다.

필드타입필수설명
rowsGlanceRow[]예표시할 사실입니다. 각 행은 레이블과 인라인 HTML 값으로 이루어집니다.
captionstring아니요행 위에 표시되는 선택적 캡션입니다.
variant'plain' | 'error' | 'info' | 'success' | 'warning'아니요배경 변형입니다. plain은 스타일이 없고, 나머지는 알림 팔레트와 일치합니다.
JSON
{
  "type": "glance",
  "data": {
    "caption": "Facts",
    "rows": [{ "label": "Version", "html": "<b>1.0</b>" }],
    "variant": "plain"
  }
}

최상위 및 섹션 제목(h1부터 h6까지). 인라인 도구는 html 페이로드 안에서 작동합니다.

필드타입필수설명
htmlstring예제목의 HTML 콘텐츠. 인라인 도구 마크업이 지원됩니다.
level'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'아니요제목 레벨. 다음 중 하나: h1, h2, h3, h4, h5, h6. 기본값은 h1입니다.
JSON
{
  "type": "header",
  "data": { "html": "Getting started", "level": "h2" }
}

image

캡션과 alt 텍스트가 있는 이미지 블록. Editor.create의 imageUploader 콜백을 통해 처리됩니다.

필드타입필수설명
urlstring예임베드할 이미지의 URL.
captionstring아니요이미지 아래에 표시되는 일반 텍스트 캡션.
altstring아니요이미지 요소의 alt 텍스트.
alignment'center' | 'left' | 'right'아니요이미지의 수평 정렬. 다음 중 하나: center, left, right.
JSON
{
  "type": "image",
  "data": { "url": "/img/hero.jpg", "caption": "Hero image", "alt": "A hero", "alignment": "center" }
}

issues

페이지의 이슈 칩과 카드에서 렌더링 시점에 도출되는 연결된 이슈 표(이슈, 제목, 상태, 담당자)입니다. 자체 데이터를 저장하지 않습니다.

이 블록은 필드를 저장하지 않습니다. 행은 렌더링 시점에 페이지의 이슈 칩과 카드에서 도출됩니다.

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

latex

LaTeX 수식입니다. 소스로 저장되고 렌더링 시점에 조판됩니다. 나중에 더 나은 렌더러가 나오면 이미 존재하는 모든 문서가 개선됩니다.

필드타입필수설명
sourcestring예LaTeX 소스입니다. 소스로 저장되며, 렌더링된 출력으로는 저장되지 않습니다.
JSON
{
  "type": "latex",
  "data": { "source": "\\frac{a}{b}" }
}

list

순서가 있거나 없는 목록. 각 항목은 html입니다.

필드타입필수설명
type'ordered' | 'unordered'예목록 유형. 다음 중 하나: ordered, unordered.
itemsstring[]예HTML 문자열의 배열, 각 목록 항목당 하나.
JSON
{
  "type": "list",
  "data": { "type": "unordered", "items": ["First item", "Second item"] }
}

mermaid

Mermaid 다이어그램입니다. 소스로 저장되고 표시 시점에 그려지며, 래스터로는 저장되지 않습니다.

필드타입필수설명
sourcestring예Mermaid 소스입니다. 소스로 저장되며, 그려진 출력으로는 저장되지 않습니다.
JSON
{
  "type": "mermaid",
  "data": { "source": "flowchart TD\n  A --> B" }
}

openapi

OpenAPI 3.x 문서에서 인터랙티브 API 레퍼런스를 렌더링합니다. 인라인이거나 URL에서 가져오며, 서버 선택기와 코드 스니펫을 제공합니다.

필드타입필수설명
specobject아니요인라인 OpenAPI 3.x 문서입니다. 둘 다 설정되면 url보다 우선합니다.
urlstring아니요렌더링 시점에 OpenAPI 문서를 가져올 위치입니다.
includeOpenApiFilter아니요어떤 작업을 렌더링할지 거르는 필터입니다.
excludeOpenApiFilter아니요어떤 작업을 숨길지 거르는 필터입니다.
defaultServerstring아니요레퍼런스가 기본으로 선택하는 서버입니다.
snippetLanguagesCodeLanguage[]아니요요청 스니펫에 제공되는 언어입니다.
JSON
{
  "type": "openapi",
  "data": { "url": "/api/openapi.json", "defaultServer": "https://api.example.com" }
}

paragraph

서식 있는 텍스트 단락. bold, italic, code, link, marker, tooltip 같은 인라인 도구 마크업을 허용합니다.

필드타입필수설명
htmlstring예단락의 HTML 콘텐츠. 인라인 도구 마크업이 지원됩니다.
JSON
{
  "type": "paragraph",
  "data": { "html": "This is a <b>paragraph</b> with inline markup." }
}

quote

선택적 작성자 표기가 있는 인용 블록.

필드타입필수설명
htmlstring예인용문 본문의 HTML 콘텐츠. 인라인 도구 마크업이 지원됩니다.
authorstring아니요인용문 아래에 표시되는 일반 텍스트 또는 HTML 출처.
JSON
{
  "type": "quote",
  "data": { "html": "The best way to predict the future is to invent it.", "author": "Alan Kay" }
}

sketch

스트로크로 저장되는 자유 곡선 드로잉입니다. 래스터가 아니므로 계속 편집할 수 있고 깔끔하게 확대됩니다.

필드타입필수설명
strokesSketchStroke[]예스트로크로 표현된 드로잉입니다. 각 스트로크는 선택적 색상과 너비를 가진 점의 목록입니다.
JSON
{
  "type": "sketch",
  "data": { "strokes": [{ "points": [0, 0, 10, 10], "color": "#ff0000", "width": 3 }] }
}

table

데이터 그리드. 첫 번째 행을 헤더로 사용할 수 있습니다. 각 셀은 html입니다.

필드타입필수설명
datastring[][]예HTML 셀 문자열의 2차원 배열. 첫 번째 행이 헤더 행입니다.
captionstring아니요테이블 아래에 표시되는 일반 텍스트 또는 HTML 캡션.
showDownloadboolean아니요렌더링된 출력에 다운로드 버튼을 표시합니다.
JSON
{
  "type": "table",
  "data": {
    "data": [["Name", "Type"], ["html", "string"], ["variant", "AlertVariant"]],
    "caption": "AlertData fields",
    "showDownload": false
  }
}

toc

렌더링 시점에 문서 헤더에서 도출되는 목차입니다. 자체 데이터를 저장하지 않습니다.

이 블록은 필드를 저장하지 않습니다. 목록은 렌더링 시점에 문서 헤더에서 도출됩니다.

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

updates

문서의 실시간 활동 피드입니다. 스냅숏이 아니라 신원을 저장하므로 계속 현재 활동을 보여줍니다.

필드타입필수설명
pageIdstring아니요어느 문서의 활동을 보여줄지 정합니다. 없으면 블록이 있는 문서를 뜻합니다.
JSON
{
  "type": "updates",
  "data": { "pageId": "p-7" }
}

video

비디오 블록. Editor.create의 videoUploader 콜백을 통해 처리됩니다.

필드타입필수설명
urlstring예비디오 파일의 URL 또는 YouTube/Vimeo 임베드 링크.
captionstring아니요플레이어 아래에 표시되는 일반 텍스트 캡션.
altstring아니요비디오 요소의 접근 가능한 레이블.
alignment'center' | 'left' | 'right'아니요플레이어의 수평 정렬. 다음 중 하나: center, left, right.
JSON
{
  "type": "video",
  "data": { "url": "/media/demo.mp4", "caption": "Product demo", "alignment": "center" }
}