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 buildMIT License โ see LICENSE.
Contributions welcome! Please open an issue or PR:
๐ GitHub Repository
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 |