{
  "url": "https://unifast.dev/ko/docs/packages/node/overview/",
  "locale": "ko",
  "title": "@unifast/node",
  "description": "네이티브 Rust로 구동되는 unifast Markdown/MDX 컴파일러의 Node.js 바인딩",
  "section": "packages",
  "body": "## 개요\n\n`@unifast/node`는 Node.js에서 unifast를 사용할 때의 주요 진입점입니다. [`compile()`](/docs/packages/node/compile) 함수를 제공하며, 이 함수는 napi-rs를 통해 네이티브 Rust 컴파일러를 호출하여 최고 수준의 성능을 냅니다. 또한 플러그인 시스템을 지원하므로, Rust 컴파일 이후에 JavaScript에서 HAST 변환을 적용할 수 있습니다.\n\n## 설치\n\n> 네이티브 Rust 애드온이 사전 빌드되어 있어야 합니다. 네이티브 바이너리가 없다면 `cargo build -p unifast-bindings-node --release`를 실행하세요.\n\n## 빠른 시작\n\n```ts\n\nconst result = compile(\"# Hello, **world**!\");\nconsole.log(result.output);\n// <h1 id=\"hello-world\">Hello, <strong>world</strong>!</h1>\n```\n\n## 플러그인 파이프라인\n\n플러그인이 제공되면 `compile()`은 다음 파이프라인을 실행합니다.\n\n1. **플러그인 분리** - `plugins`를 나머지 옵션에서 분리합니다.\n2. **옵션 병합** - 각 플러그인의 `options`를 컴파일 옵션에 깊은 병합합니다.\n3. **HAST 강제** - `hastTransform`을 가진 플러그인이 있으면 네이티브 호출에서 `outputKind: \"hast\"`를 사용합니다.\n4. **네이티브 컴파일** - napi-rs를 통해 Rust 컴파일러를 호출합니다.\n5. **HAST 변환** - 각 플러그인의 `hastTransform`을 순서대로 적용합니다.\n6. **출력 변환** - 사용자가 HAST 출력을 요청하지 않았다면 `hastToHtml`로 HTML로 변환합니다.\n\n## 빌트인 플러그인\n\n다음 플러그인 팩토리 함수가 포함되어 있으며, 별도의 설치가 필요하지 않습니다.\n\n`gfm`, `frontmatter`, `sanitize`, `syntect`, `treeSitter`, `toc`, `externalLinks`, `autolinkHeadings`, `smartypants`, `wikiLink`, `codeImport`, `emoji`, `breaks`, `math`, `githubAlert`, `sectionize`, `directive`, `definitionList`, `rubyAnnotation`, `cjk`\n\n```ts\n\nconst result = compile(source, {\n  plugins: [gfm(), frontmatter(), syntect()],\n});\n```\n\n## Exports 요약\n\n| Export | 종류 | 설명 |\n|--------|------|-------------|\n| `compile` | function | Markdown/MDX를 HTML이나 다른 형식으로 컴파일 |\n| `gfm`, `frontmatter`, ... | function | 빌트인 플러그인 팩토리 (총 20개) |\n| `hastToHtml` | function | HAST-to-HTML 시리얼라이저 (`@unifast/core`에서 재수출) |\n| `CompileOptions` | type | 컴파일 설정 |\n| `CompileResult` | type | 컴파일 결과 |\n| `UnifastPlugin` | type | 플러그인 인터페이스 |\n| `TocEntry` | type | 목차 항목 |\n| `HastRoot` | type | HAST 루트 노드 |\n| `HastElement` | type | HAST 요소 노드 |\n| `HastText` | type | HAST 텍스트 노드 |\n| `HastNode` | type | 모든 HAST 노드 타입의 유니언 |\n| `UnifastError` | class | 기반 에러 클래스 |\n| `ParseError` | class | 파싱 에러 클래스 |\n| `CompileError` | class | 컴파일 에러 클래스 |",
  "alternates": [
    {
      "locale": "en",
      "url": "https://unifast.dev/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/docs/packages/node/overview.json"
    },
    {
      "locale": "ja",
      "url": "https://unifast.dev/ja/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/ja/docs/packages/node/overview.json"
    },
    {
      "locale": "zh-CN",
      "url": "https://unifast.dev/zh-CN/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/zh-CN/docs/packages/node/overview.json"
    },
    {
      "locale": "zh-TW",
      "url": "https://unifast.dev/zh-TW/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/zh-TW/docs/packages/node/overview.json"
    },
    {
      "locale": "ko",
      "url": "https://unifast.dev/ko/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/ko/docs/packages/node/overview.json"
    },
    {
      "locale": "fr",
      "url": "https://unifast.dev/fr/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/fr/docs/packages/node/overview.json"
    },
    {
      "locale": "it",
      "url": "https://unifast.dev/it/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/it/docs/packages/node/overview.json"
    },
    {
      "locale": "es",
      "url": "https://unifast.dev/es/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/es/docs/packages/node/overview.json"
    },
    {
      "locale": "pt-BR",
      "url": "https://unifast.dev/pt-BR/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/pt-BR/docs/packages/node/overview.json"
    },
    {
      "locale": "de",
      "url": "https://unifast.dev/de/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/de/docs/packages/node/overview.json"
    },
    {
      "locale": "ru",
      "url": "https://unifast.dev/ru/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/ru/docs/packages/node/overview.json"
    },
    {
      "locale": "hi",
      "url": "https://unifast.dev/hi/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/hi/docs/packages/node/overview.json"
    },
    {
      "locale": "id",
      "url": "https://unifast.dev/id/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/id/docs/packages/node/overview.json"
    },
    {
      "locale": "tr",
      "url": "https://unifast.dev/tr/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/tr/docs/packages/node/overview.json"
    },
    {
      "locale": "vi",
      "url": "https://unifast.dev/vi/docs/packages/node/overview/",
      "api": "https://unifast.dev//api/vi/docs/packages/node/overview.json"
    }
  ]
}
