1 个不稳定版本
0.1.0 | 2020年12月24日 |
---|
#1286 in 文本处理
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