You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
if you want to render GFM exactly like github, use comrak
if you want to define your own syntax (like @mentions, :emoji:, custom html classes), use this library
You can check a demo in your browser (it's Rust compiled into WASM).
Features
100% CommonMark compatibility
AST
Source maps (full support, not just on block tags like cmark)
Ability to write your own syntax of arbitrary complexity
to prove this point, CommonMark syntax itself is written as a plugin
Usage
let parser = &mut markdown_it::MarkdownIt::new();
markdown_it::plugins::cmark::add(parser);
markdown_it::plugins::extra::add(parser);let ast = parser.parse("Hello **world**!");let html = ast.render();print!("{html}");// prints "<p>Hello <strong>world</strong>!</p>"
For a guide on how to extend it, see examples folder.
Notes
This is an attempt at making a language-agnostic parser. You can probably parse AsciiDoc, reStructuredText or any other plain text format with this without too much effort. I might eventually write these as proof-of-concept.