@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 文件会被转换为一个包含以下导出的模块:
| 导出 | 类型 | 描述 |
|---|---|---|
html | string | 编译后的 HTML 字符串 |
frontmatter | Record<string, unknown> | 解析后的 frontmatter 元数据 |
toc | TocEntry[] | 提取出的目录 |
default | object | 包含 html、frontmatter 和 toc 的对象 |
.mdx 文件
每个 .mdx 文件会使用 React 的 jsx-runtime 编译为一个 JSX 模块。它默认导出一个 React 组件,并同时导出 frontmatter 和 toc。
导出列表
| 导出 | 类别 | 描述 |
|---|---|---|
default(unifastPlugin) | function | Vite 插件工厂函数 |
UnifastPluginOptions | type | 插件选项接口 |