Crates.io | markdown-heading-id |
lib.rs | markdown-heading-id |
version | 0.1.0 |
source | src |
created_at | 2021-01-08 12:29:03.924873 |
updated_at | 2021-01-08 12:29:03.924873 |
description | Filter for `pulldown-cmark` which converts headings with custom ID |
homepage | |
repository | https://github.com/ShotaroTsuji/markdown-heading-id |
max_upload_size | |
id | 334304 |
size | 10,853 |
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>
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