#语法高亮 #Markdown #Markdown语法 #高亮器 #语法高亮器

highlight-pulldown

处理pulldown-cmark事件以应用代码块语法高亮

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 中使用

GPL-3.0-or-later

20KB
132

pipeline status crates.io

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());

为了提高效率,考虑在热循环中避免多次调用highlighthighlight_with_theme,而是创建一个PulldownHighlighter对象并多次使用它。

贡献

如果您偶然使用此包,任何反馈都将非常受欢迎。

通过GitLab仓库以问题或补丁的形式进行的贡献将更加感激。

依赖项

~3–12MB
~107K SLoC