3 个不稳定版本

0.2.0 2023年8月3日
0.1.1 2023年6月21日
0.1.0 2023年6月17日

2734解析器实现

Download history 36/week @ 2024-03-11 21/week @ 2024-03-18 24/week @ 2024-03-25 92/week @ 2024-04-01 21/week @ 2024-04-08 25/week @ 2024-04-15 24/week @ 2024-04-22 13/week @ 2024-04-29 25/week @ 2024-05-06 19/week @ 2024-05-13 15/week @ 2024-05-20 31/week @ 2024-05-27 24/week @ 2024-06-03 22/week @ 2024-06-10 38/week @ 2024-06-17 22/week @ 2024-06-24

每月下载 109
vitrine 中使用

Apache-2.0

30KB
468

markdown-it-footnote.rs

crates.io

一个用于处理脚注的 markdown-it.rs 插件。

它基于 pandoc 定义

Normal footnote:

Here is a footnote reference,[^1] and another.[^longnote]

Here is an inline note.^[my note is here!]

[^1]: Here is the footnote.

[^longnote]: Here's one with multiple blocks.

    Subsequent paragraphs are indented to show that they
belong to the previous footnote.

查看 测试 获取更多示例。

用法

加载完整插件

let parser = &mut markdown_it::MarkdownIt::new();
markdown_it::plugins::cmark::add(parser);

markdown_it_footnote::add(parser);

let ast  = parser.parse("Example^[my note]");
let html = ast.render();

或者,您可以加载单独的组件

let parser = &mut markdown_it::MarkdownIt::new();
markdown_it::plugins::cmark::add(parser);

markdown_it_footnote::definitions::add(md);
markdown_it_footnote::references::add(md);
markdown_it_footnote::inline::add(md);
markdown_it_footnote::collect::add(md);
markdown_it_footnote::back_refs::add(md);

以下为各个组件的作用

  • definitions:解析脚注定义,例如 [^1]: foo
  • references:解析脚注引用,例如 [^1]
  • inline:解析行内脚注,例如 ^[foo]
  • collect:收集脚注定义(删除重复/未引用的项)并将它们移动到根节点的最后一个子节点。
  • back_refs:向脚注定义添加锚点,并带有指向引用的链接

依赖项

~5–7MB
~159K SLoC