12 个版本
0.5.1 | 2024年7月12日 |
---|---|
0.5.0 |
|
0.4.1 | 2022年12月11日 |
0.3.1 | 2022年6月6日 |
0.1.2 | 2021年12月14日 |
#1793 in 解析器实现
77 每月下载量
在 2 个crate中使用(通过blades)
21KB
413 行
cmark 语法高亮
此crate提供了一个用于 pulldown_cmark 事件的预处理程序,该程序实现了语法高亮。它是基于Maciej Hirsz为Ramhorns模板引擎的工作。
支持的语言
- Rust
- JavaScript
- sh shell
- TOML
定义语言语法的文件位于 src/languages
目录中。语法使用正则表达式定义,Logos过程宏将它们在编译时转换为词法分析器。欢迎为实现新语言提交PR!
功能
启用 latex2mathml
功能后,用 math
标记的包含LaTeX公式的块将以块模式渲染为 MathML,并且对于以 $
开头和结尾的行内代码,将以类似方式行内模式渲染。
使用
此预处理程序可以用作 Ramhorns 模板引擎的回调。
use ramhorns::encoding::Encoder;
pub fn encode<E: Encoder>(source: &str, encoder: &mut E) -> Result<(), E::Error> {
let parser = pulldown_cmark::Parser::new(source);
let processed = cmark_syntax::SyntaxPreprocessor::new(parser);
encoder.write_html(processed)
}
输出的HTML由以下类名的span标签组成:glyph
、literal
、identifier
、special-identifier
、strong-identifier
、keyword
、comment
。
依赖项
~3MB
~25K SLoC