@unifast/vite

unifast 的 Vite 插件 —— 将 Markdown 和 MDX 文件转换为 JS 模块。

概述

@unifast/vite 是一个 Vite 插件,可将 .md.mdx 文件转换为 JavaScript 模块。它将 unifast 的 Markdown/MDX 编译器整合进 Vite 的构建流程,让你可以在应用中直接 import Markdown 文件。

安装

@unifast/node 是可选的对等依赖 —— 当它可用时,插件会使用原生 Rust 编译器以获得最佳性能。若未安装它,.md 文件会回退到基础的 HTML 渲染,而 .mdx 文件则必须依赖它。

快速开始

// vite.config.ts
import { defineConfig } from "vite";
import unifast from "@unifast/vite";

export default defineConfig({
  plugins: [
    unifast({
      md: {
        // compile options for .md files
      },
      mdx: {
        // compile options for .mdx files
      },
    }),
  ],
});
// App.tsx
import doc from "./content/hello.md";

console.log(doc.html);         // compiled HTML string
console.log(doc.frontmatter);  // parsed frontmatter object
console.log(doc.toc);          // table of contents entries

模块导出

.md 文件

每个 .md 文件会被转换为一个包含以下导出的模块:

导出类型描述
htmlstring编译后的 HTML 字符串
frontmatterRecord<string, unknown>解析后的 frontmatter 元数据
tocTocEntry[]提取出的目录
defaultobject包含 htmlfrontmattertoc 的对象

.mdx 文件

每个 .mdx 文件会使用 React 的 jsx-runtime 编译为一个 JSX 模块。它默认导出一个 React 组件,并同时导出 frontmattertoc

导出列表

导出类别描述
default(unifastPlugin)functionVite 插件工厂函数
UnifastPluginOptionstype插件选项接口