satteri
Native-enhanced Markdown parsing and processing for JavaScript. Parse and compile in Rust, create flexible plugins in JavaScript.
Install
npm install satteri
yarn add satteri
pnpm add satteri
Usage
Markdown to HTML
import { markdownToHtml } from "satteri";
const { html } = markdownToHtml("# Hello\n\nWorld");
MDX to JS
import { mdxToJs } from "satteri";
const { code } = mdxToJs("# Hello\n\n<MyComponent />");
With plugins
Both functions accept mdastPlugins (operate on the Markdown AST) and hastPlugins (operate on the HTML AST). A plugin is an object with a name and a visitor per node type; defineMdastPlugin / defineHastPlugin add type inference.
import { markdownToHtml, defineMdastPlugin } from "satteri";
const stripInlineCode = defineMdastPlugin({
name: "strip-inline-code",
inlineCode(node, ctx) {
ctx.replaceNode(node, { type: "text", value: node.value });
},
});
const { html } = markdownToHtml("Use `let` instead of `var`.", {
mdastPlugins: [stripInlineCode],
});
If you're familiar with the unified ecosystem, mdast and hast plugins are similar to remark and rehype plugins, respectively, reusing the same AST shapes.
Documentation
This README covers the basics. The full documentation covers the complete API, the plugin system, every parser feature, and framework integration:
License
MIT