reopt designreopt design
DocsExploreToolsPricingBuilder
시작하기
시작하기
Playground
핵심 개념
핵심 개념
Editor
Editor 개요
블록 타입
스트리밍
Markdown 변환
구축·운영
Skills
앱 조합 가이드
AI 연동
Authoring 플레이북
커스텀 블록
릴리즈 노트
Oopt-editor
reopt designreopt design

AI 시대를 위한 디자인 시스템

  • 문서
  • 가격
  • 릴리즈 노트
  • GitHub
  • 서비스 약관
  • 개인정보처리방침

© 2026 reopt-ai. All rights reserved.

Editor
  1. 문서
  2. /
  3. Editor
  4. /
  5. Markdown 변환

Markdown 변환

specToMarkdown와 markdownToSpec으로 EditorSpec ↔ Markdown 양방향 변환. AI 컨텍스트 전달과 마크다운 가져오기에 사용합니다.

reopt design · 업데이트 2026년 6월 26일

시작하기Playground핵심 개념개요블록 타입스트리밍Markdown 변환Skills앱 조합 가이드AI 연동Authoring 플레이북커스텀 블록릴리즈 노트

1. 개요

두 함수 모두 zero-dependency이며 15개 블록 타입을 지원합니다. 인라인 마크(**bold**, *italic* 등)는 텍스트에 그대로 보존됩니다.

EditorSpec  ─── specToMarkdown() ──→  Markdown string
                                                 ↓
             AI 에이전트 컨텍스트 / 파일 내보내기
                                                 ↓
Markdown    ─── markdownToSpec() ──→  EditorSpec

2. specToMarkdown

EditorSpec을 Markdown 문자열로 변환합니다. AI 에이전트에게 현재 문서 상태를 전달할 때 사용합니다.

tsx
import { specToMarkdown } from "@reopt-ai/opt-editor";

const markdown = specToMarkdown(store.getSpec());
// → "# Title\n\nSome **bold** text\n\n| Name | Age |\n| --- | --- |\n| Alice | 30 |"

// AI 에이전트에게 컨텍스트 전달
const messages = [
  { role: "system", content: catalog.prompt() },
  { role: "user", content: `현재 문서:\n${markdown}\n\n이 문서에 결론을 추가해줘.` },
];

3. markdownToSpec

Markdown 문자열을 EditorSpec으로 변환합니다. 기존 마크다운 콘텐츠를 에디터로 가져올 때 사용합니다.

tsx
import { markdownToSpec, createEditorStore } from "@reopt-ai/opt-editor";

const markdown = `# Getting Started

Welcome to the **editor**.

- Feature one
- Feature two

> [!WARNING]
> This is important!
`;

const spec = markdownToSpec(markdown);
const store = createEditorStore(spec);
// → 에디터에 heading + paragraph + list + callout 렌더링

4. 지원 블록 매핑

MarkdownBlock type비고
# ~ ######headinglevel 1-6
plain textparagraph
```lang ... ```codelanguage 자동 감지
---divider
> textquote
> [!TYPE]calloutGitHub admonition 형식
- / 1.list + list-itemordered/unordered
| ... | ... |table familyGFM 테이블
![alt](src)image다음 줄 *caption* 감지

video, file, embed는 마크다운 표준 문법이 없으므로 specToMarkdown에서 링크 형태로 출력되지만, markdownToSpec에서는 일반 링크와 구분이 불가하여 paragraph로 파싱됩니다.

5. 왕복 변환

대부분의 블록은 왕복 변환이 정확합니다. 아래는 테스트로 검증된 왕복 지원 블록입니다:

  • paragraph, heading, code, divider, quote
  • unordered list, ordered list
  • table (GFM separator 포함)
  • image (caption 포함)
  • callout (멀티라인 지원)
  • 인라인 마크 (bold, italic, code, strikethrough, link)
Previous스트리밍RFC 6902 NDJSON 패치, StreamCompiler, useEditorStream, 재시도/이어쓰기Editor
스트리밍 페이지로 이동
NextSkillsopt-editor 설치, 환경 진단, Plate 마이그레이션, 업그레이드, release용 action skill을 정리합니다.구축·운영