unifastPlugin()
Create a Vite plugin that transforms Markdown and MDX files into importable JavaScript modules.
import unifast from "@unifast/vite";Signature
function unifastPlugin(options?: UnifastPluginOptions): PluginParameters
options?
| Property | Type | Default | Description |
|---|---|---|---|
md | CompileOptions | {} | Compile options applied to .md files |
mdx | CompileOptions | Uses md options | Compile options applied to .mdx files. Falls back to md if not specified |
Returns
A Vite Plugin object with:
name:"vite-plugin-unifast"enforce:"pre"— runs before other pluginstransform: Compiles.md/.mdxfiles into JS moduleshandleHotUpdate: Triggers HMR when Markdown files change
Usage
// vite.config.ts
import { defineConfig } from "vite";
import unifast from "@unifast/vite";
import { gfm, frontmatter, syntect } from "@unifast/node";
export default defineConfig({
plugins: [
unifast({
md: {
plugins: [gfm(), frontmatter(), syntect()],
},
}),
],
});Examples
Separate MD and MDX options
import unifast from "@unifast/vite";
import { gfm, frontmatter } from "@unifast/node";
export default defineConfig({
plugins: [
unifast({
md: {
plugins: [gfm(), frontmatter()],
},
mdx: {
plugins: [gfm(), frontmatter()],
// MDX-specific options can differ
},
}),
],
});Import Markdown in components
import doc from "./README.md";
// doc.html — compiled HTML string
// doc.frontmatter — parsed frontmatter object
// doc.toc — table of contents entries