A blazing-fast Node.js module for converting Markdown to HTML — powered by Rust’s pulldown-cmark
and Neon for seamless Node integration.
- ⚡ Ultra-fast conversion using Rust’s performance and
pulldown-cmark
. - 🧩 Optional GitHub Flavored Markdown (GFM) support — tables, footnotes, strikethrough, task lists, and heading attributes.
- 📦 ES module export — easily import HTML in your frontend projects.
- 🛡️ TypeScript ready — includes full type definitions.
npm install rs-markdown-parser
💡 Note: To modify or rebuild the native module, follow the build instructions below.
If you're editing the Rust source or cross-compiling, use one of the following scripts:
Mode | Command | Notes |
---|---|---|
Debug | npm run debug |
Fast builds for development |
Release | npm run build |
Optimized builds for production |
Cross-build | npm run cross |
Build for other target platforms |
The build will generate a native Node.js addon (index.node
).
const { processMarkdown } = require("rs-markdown-parser");
const { join } = require("path");
const filePath = join(__dirname, "test.md");
const result = processMarkdown(filePath, false);
console.log(result); // => export default `<html_content>`;
import { processMarkdown } from "rs-markdown-parser";
import { join } from "path";
const filePath: string = join(__dirname, "test.md");
const result: string = processMarkdown(filePath, false);
console.log(result); // => export default `<html_content>`;
# Hello, World!
This is a **Markdown** file.
- Item 1
- Item 2
# Product Comparison
| Product | Price | Features | In Stock |
|--------------|---------|----------------------------|----------|
| Phone A | $299 | 64GB, 12MP Camera, 4G LTE | Yes |
| Phone B | $399 | 128GB, 48MP Camera, 5G | No |
| Phone C | $499 | 256GB, 108MP Camera, 5G | Yes |
Enable extended Markdown features with the gfm
flag:
const result = processMarkdown(filePath, true);
Supported GFM features:
- ✔️ Task lists
- 📑 Footnotes
- 🔡 Strikethrough (
~~text~~
) - 🧮 Tables
- 🏷️ Heading attributes (
## Title {#id}
)
This module includes index.d.ts
for full TypeScript support. To use:
-
Ensure TypeScript is installed:
npm install --save-dev typescript
-
Import the module as usual. Type definitions are automatically applied.
npm run test
- Edit Rust:
src/lib.rs
- Edit Types:
index.d.ts
Then:
npm run debug
# or
npm run build
MIT License — see LICENSE.
Contributions welcome! Please open an issue or PR:
Found a bug or need a feature?
📬 Report it on GitHub Issues
Thanks to these awesome people for their work on this project:
aliezzahn |
0xre2a |
morihn |