import { compile } from "@rspress/mdx-rs";
async function main() {
const value = `
# Hello World
This is a demo of @rspress/mdx-rs
`;
const result = await compile({
// The mdx content
value,
// File path of the mdx file, the compiler will determine the different syntax(md/mdx) based on the file extension
filepath: "xxx.mdx",
// Whether to enable development mode, default is false
development: true,
// Current working directory, can be empty string
root: "",
});
console.log(result);
}
Of course, you can also the compileSync function to compile mdx synchronously, which is not recommended because it will block the event loop and slow down the compile process.
import { compileSync } from "@rspress/mdx-rs";
function main() {
const value = `
# Hello World
This is a demo of @rspress/mdx-rs
`;
const result = compileSync({
// The mdx content
value,
// File path of the mdx file, can be empty string
filepath: "",
// Whether to enable development mode, default is false
development: true,
// Current working directory, can be empty string
root: "",
});
console.log(result);
}
Credits
Thanks to mdxjs-rs, the awesome Rust library authored by wooorm.
Also, thanks to napi-rs, authored by Brooooooklyn, which is a great solution to help us build Node.js binding for Rust.
@rspress/mdx-rs
This is a Node.js binding for MDX compilation of Rspress which is a modern documentation tool based on Rspack.
It can be 10x+ faster than compiler in pure JavaScript version.The benchmark result of
@rspress/mdx-rsvs@mdx-js/mdxis as follows:We forked mdxjs-rs, the Rust version of mdx compiler and customize it for Rspress, adding the following features:
:::tipin @rspress/plugin-container-syntax.target="_blank"andrel="noopener noreferrer"to external link.Install
Usage
Of course, you can also the
compileSyncfunction to compile mdx synchronously, which is not recommended because it will block the event loop and slow down the compile process.Credits
Thanks to mdxjs-rs, the awesome Rust library authored by wooorm.
Also, thanks to napi-rs, authored by Brooooooklyn, which is a great solution to help us build Node.js binding for Rust.