#pandoc #ast #filter #markdown #latex

pandoc_ast

将markdown ast反序列化和序列化,以编写pandoc过滤器

23个版本

0.8.6 2024年1月3日
0.8.5 2023年8月28日
0.8.4 2023年2月21日
0.8.2 2022年6月1日
0.1.0 2015年8月14日

解析器实现 中排名 1627

Download history 36/week @ 2024-03-11 19/week @ 2024-03-18 24/week @ 2024-03-25 129/week @ 2024-04-01 25/week @ 2024-04-08 30/week @ 2024-04-15 30/week @ 2024-04-22 23/week @ 2024-04-29 24/week @ 2024-05-06 46/week @ 2024-05-13 49/week @ 2024-05-20 33/week @ 2024-05-27 36/week @ 2024-06-03 36/week @ 2024-06-10 26/week @ 2024-06-17 42/week @ 2024-06-24

每月下载量 142
用于 5 crates

MIT 许可协议

18KB
386

这个crate允许您为pandoc实现过滤器。最简单的方法是使用pandoc crate结合它们。您也可以创建一个从stdin读取并写入stdout的二进制文件,并通过--filter将此传递给正常的pandoc调用

说明

fn main() {
    let mut pandoc = pandoc::new();

    ...

    pandoc.add_filter(|json| pandoc_ast::filter(json, |mut pandoc| {
        for block in &mut pandoc.1 {
            use pandoc_ast::Block::*;
            *block = match *block {
                CodeBlock((_, ref kinds, _), _) if kinds.iter().next() == Some("graphviz") => {
                    // do something to change a graphviz block into an image
                }
            }
        }
        pandoc
    }));
    pandoc.execute().unwrap();
}

依赖项

~0.7–1.5MB
~34K SLoC