5个版本
0.2.2 | 2023年7月22日 |
---|---|
0.2.1 | 2023年7月22日 |
0.2.0 | 2023年7月22日 |
0.1.1 | 2023年7月18日 |
0.1.0 | 2023年7月14日 |
993 在 文本处理 中
每月下载 33 次
在 kobold-ssg 中使用
20KB
132 行
Highlight Pulldown 代码
一个小的库crate,用于将使用 pulldown-cmark 解析的Markdown应用语法高亮。
实现基于在 pulldown-cmark#167 的讨论。
用法
该crate公开了一个函数,highlight
。它接受一个pulldown-cmark事件的迭代器,并返回一个相应的Vec<pulldown_cmark::Event>
,其中代码块已被替换为包含高亮代码的HTML块。
use highlight_pulldown::highlight_with_theme;
let markdown = r#"
```rust
enum Hello {
World,
SyntaxHighlighting,
}
```"#;
let events = pulldown_cmark::Parser::new(markdown);
// apply a syntax highlighting pass to the pulldown_cmark events
let events = highlight_with_theme(events, "base16-ocean.dark").unwrap();
// emit HTML or further process the events as usual
let mut html = String::new();
pulldown_cmark::html::push_html(&mut html, events.into_iter());
为了提高效率,考虑在热循环中避免多次调用highlight
或highlight_with_theme
,而是创建一个PulldownHighlighter
对象并多次使用它。
贡献
如果您偶然使用此包,任何反馈都将非常受欢迎。
通过GitLab仓库以问题或补丁的形式进行的贡献将更加感激。
依赖项
~3–12MB
~107K SLoC