一个高效、可靠的CommonMark解析器,CommonMark是Markdown的一种标准方言。
这个库是一个针对 CommonMark 的拉取解析器,使用 Rust 编写。它附带一个简单的命令行工具,可用于渲染为 HTML,并且也设计为易于作为库使用。
它的设计目标是:
此外,它还可选支持解析脚注,
GitHub 风味表格
GitHub 风格的任务列表,
删除线 和
高亮(==标记==)
渲染为 <mark>)。
构建此 crate 需要 Rustc 1.71.1 或更高版本。
Example usage:
// Create parser with example Markdown text.
let markdown_input = "hello world";
let parser = pulldown_cmark::Parser::new(markdown_input);
// Write to a new String buffer.
let mut html_output = String::new();
pulldown_cmark::html::push_html(&mut html_output, parser);
assert_eq!(&html_output, "<p>hello world</p>\n");Markdown及其变体有许多解析器,但据我所知,没有使用拉取解析的。拉取解析在XML中已经变得流行,特别是对于内存敏感的应用,因为它比构建文档树使用的内存少得多,但比推送解析器更容易使用。推送解析器以难以使用而闻名,而且由于用户需要在系列回调中精细地管理状态,往往也容易出错。
在简洁的设计中,解析和渲染阶段被清晰地分开,但为了性能和便捷,这一原则常常被牺牲。许多 Markdown 实现将解析和渲染混合在一起,甚至那些试图将它们分离的设计(例如流行的 [hoedow
暂无开放 Issues,或尚未同步最近议题。