#restructuredtext #markdown #common-mark #cmark #event-stream

struckdown

为Rust提供的结构化markdown/commonmark库

1 个不稳定版本

0.1.0 2020年12月24日

#1286 in 文本处理

Apache-2.0

100KB
2K SLoC

struckdown

struckdown是一个受Python的docutils和Sphinx启发的实验性markdown/commonmark处理管道库。其想法是支持与reStructuredText类似的自定义角色和指令,并为可以由标准化工具处理的抽象提供支持,而无需了解Markdown的工作方式。

想法

Markdown文档被解析成事件流,然后可以被包括外部工具在内的事件处理器修改。因为事件流可以被序列化为JSON,所以很容易进行操作。

示例

use struckdown::pipeline::Pipeline;
use struckdown::processors::{AutoAnchors, Syntect};
use struckdown::html::to_html;

// create a default pipeline
let mut pipeline = Pipeline::default();

// add a processor for anchors and syntax highlighting.
pipeline.add_processor(AutoAnchors::default());
pipeline.add_processor(Syntect::default());

// parse and process into a final event stream.
let stream = pipeline.process(r#"
# Hello World
```python
print("Hello World!");
```"#);

// render to html
let html = to_html(stream, &Default::default());

依赖项

~7–19MB
~259K SLoC