{
  "url": "https://unifast.dev/zh-TW/docs/packages/node/overview/",
  "locale": "zh-TW",
  "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` 以深層合併方式併入 compile 選項\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## 匯出列表\n\n| 匯出名稱 | 類別 | 說明 |\n|--------|------|-------------|\n| `compile` | function | 將 Markdown/MDX 編譯為 HTML 或其他格式 |\n| `gfm`、`frontmatter`、... | function | 內建的外掛工廠函式（共 20 個） |\n| `hastToHtml` | function | HAST 轉 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"
    }
  ]
}
