#markdown-parser #语法树 #AST #Markdown #PEG #pest-parser #抽象

pegmd

基于PEG的Markdown解析器,用于创建抽象语法树

4个版本

0.2.3 2023年8月3日
0.2.2 2023年8月2日
0.2.1 2023年7月25日
0.2.0 2023年7月25日
0.1.0 2023年7月12日

#2925 in 解析器实现

MIT许可证

61KB
1.5K SLoC

Rust 1K SLoC // 0.0% comments Pest 211 SLoC // 0.0% comments

pegmd

Build crates.io docs
通过使用pest定义解析表达式语法(PEG)将遵循CommonMark v0.30的Markdown文档解析为抽象语法树。如果包含html功能,该crate还提供可选的转换器,将AST转换为HTML。

用法

创建AST

从crate导出的主函数ast::parse_document接受一个&str,在成功的情况下返回一个与输入相同的生命周期的Node

遍历

从那里,你可以通过创建一个实现traversal::Vistor特质的struct来遍历树,并将其提供给Node::traverse方法。

HTML转换

如果启用html功能,该crate提供html::HTMLTransformer结构体,它实现Visitor特质以创建格式良好的HTML输出。

不支持

  • 文档流。由于pest不支持流,此crate也无法从流中读取文档。

当前限制

虽然该解析器的最终目标是支持整个CommonMark规范,但目前还不支持

所有这些都是在进行中,并将添加到解析器中。

依赖项

~2–2.9MB
~58K SLoC