markdown-it
Rust port of popular markdown-it.js library.
TL;DR:
- if you want to get result fast, use pulldown-cmark
- 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
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
You can probably parse AsciiDoc, reStructuredText or any other plain text format with this without too much effort <-- I might actually write these as proof-of-concept.
Usage
let parser = &mut new;
add;
add;
let ast = parser.parse;
let html = ast.render;
print!;
// prints "<p>Hello <strong>world</strong>!</p>"
For a guide on how to extend it, see examples folder.