9 个版本 (5 个重大变更)
0.6.1 | 2024年7月7日 |
---|---|
0.6.0 | 2023年8月3日 |
0.5.1 | 2023年7月5日 |
0.5.0 | 2023年5月13日 |
0.1.1 | 2022年7月21日 |
495 在 解析器实现
1,216 每月下载量
用于 21 个 crate (12 个直接使用)
270KB
5.5K SLoC
markdown-it
Rust 版本的流行的 markdown-it.js 库。
TL;DR
- 如果你想要快速得到结果,使用 pulldown-cmark
- 如果你想要像 GitHub 一样渲染 GFM,使用 comrak
- 如果你想要定义自己的语法(如
@提及
,:emoji:
,自定义 HTML 类),使用这个库
你可以在浏览器中查看一个 演示(这是 Rust 编译成 WASM)。
特性
- 100% CommonMark 兼容性
- AST
- 源映射(全面支持,不仅仅是块标签如 cmark)
- 能够编写任意复杂性的自定义语法
- 为了证明这一点,CommonMark 语法本身也是作为一个插件编写的
用法
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>"
有关如何扩展它的指南,请参阅 examples
目录。
注意
这是一个尝试制作一个语言无关的解析器。你可能会费点劲用这个解析 AsciiDoc、reStructuredText 或 任何其他 纯文本格式。我可能会最终将这些作为概念证明。
依赖
~7–16MB
~222K SLoC