주요 컴파일 함수입니다. Markdown 또는 MDX를 네이티브 Rust 컴파일러로 HTML이나 기타 출력 형식으로 변환합니다.
import { compile } from "@unifast/node";
시그니처
function compile(input: string, options?: CompileOptions): CompileResult
매개변수
| 속성 | 타입 | 기본값 | 설명 |
|---|
input | string | — | Markdown 또는 MDX 소스 문자열 |
options?
| 속성 | 타입 | 기본값 | 설명 |
|---|
options? | CompileOptions | — | 플러그인을 포함한 컴파일 설정 |
반환값
| 속성 | 타입 | 설명 |
|---|
output | string | object | 컴파일된 결과. 기본값은 HTML 문자열이며, HAST/MDAST의 경우 JSON 문자열입니다. |
frontmatter | Record<string, unknown> | 파싱된 frontmatter 메타데이터 (없으면 {}) |
diagnostics | Diagnostic[] | { level, message, start?, end? } 형태의 배열 |
stats | { parseMs, transformMs, emitMs } | 단계별 소요 시간(ms) |
toc | TocEntry[] | 추출된 목차 (TOC 비활성화 시 []) |
사용법
import { compile, gfm, frontmatter, toc, sanitize } from "@unifast/node";
const md = `---
title: My Document
---
# Hello, **world**!
| Column A | Column B |
|----------|----------|
| Cell 1 | Cell 2 |
`;
const result = compile(md, {
inputKind: "md",
outputKind: "html",
plugins: [gfm(), frontmatter(), toc({ maxDepth: 3 }), sanitize()],
});
console.log(result.output);
console.log(result.frontmatter);
console.log(result.toc);
console.log(result.stats);
예시
기본 Markdown을 HTML로
import { compile } from "@unifast/node";
const result = compile("# Hello, **world**!");
console.log(result.output);
MDX 입력
import { compile } from "@unifast/node";
const mdx = `
import { Alert } from "./components";
# Hello
<Alert type="info">This is MDX!</Alert>
`;
const result = compile(mdx, { inputKind: "mdx" });
HAST 출력
import { compile } from "@unifast/node";
const result = compile("# Hello", { outputKind: "hast" });
const hast = JSON.parse(result.output as string);
console.log(hast);
MDAST 출력
import { compile } from "@unifast/node";
const result = compile("# Hello", { outputKind: "mdast" });
const mdast = JSON.parse(result.output as string);
console.log(mdast);
MDX JS 출력
import { compile } from "@unifast/node";
const result = compile(mdxSource, {
inputKind: "mdx",
outputKind: "mdxJs",
});
console.log(result.output);