#markdown #pulldown-cmark #heading-id

markdown-heading-id

Filter for pulldown-cmark which converts headings with custom ID

1 unstable release

0.1.0 Jan 8, 2021

#6 in #pulldown-cmark

Download history 150/week @ 2023-12-11 138/week @ 2023-12-18 56/week @ 2024-01-01 107/week @ 2024-01-08 121/week @ 2024-01-15 203/week @ 2024-01-22 136/week @ 2024-01-29 175/week @ 2024-02-05 166/week @ 2024-02-12 97/week @ 2024-02-19 135/week @ 2024-02-26 97/week @ 2024-03-04 107/week @ 2024-03-11 58/week @ 2024-03-18 86/week @ 2024-03-25

348 downloads per month

MIT license

10KB
135 lines

markdown-heading-id

Filter for the Parser of crate pulldown-cmark

This crate provides a filter of Parser which converts headings with custom ID into HTML. It uses the syntax of headings IDs defined in Extended Syntax of Markdown.

For example, if we have the following fragment of Markdown

## Heading {#heading-id}

then it is converted into a fragment of HTML below:

<h2 id="heading-id">Heading</h2>

Usage

It is easy to use a filter provided by this crate. HeadingId wraps an instance of Parser and it can be passed to push_html or write_html, because HeadingId implements the trait Iterator<Item=Event<'a>>. An example is given below:

use pulldown_cmark::Parser;
use pulldown_cmark::html::push_html;
use markdown_heading_id::HeadingId;

let parser = Parser::new("## Heading {#heading-id}");
let parser = HeadingId::new(parser);
let mut buf = String::new();
push_html(&mut buf, parser);
assert_eq!(buf.trim_end(), r#"<h2 id="heading-id">Heading</h2>"#);

License: MIT

Dependencies

~1MB
~23K SLoC