[−][src]Function extended_pulldown::flatten_footnotes
pub fn flatten_footnotes<'a, I>(src: I) -> Vec<Event<'a>> where
I: IntoIterator<Item = Event<'a>>,
Replace Event::FootnoteReference(f)
and a seperate definition Event::Start(Tag::FootnoteDefinition(f))...Event::End(Tag::FootnoteDefinition(f))
with (at the point where Event::FootnoteReference(f)
was) Event::Start(Tag::FlattenedFootnote)...Event::End(Tag::FlattenedFootnote)
If a footnote reference has no definition, an empty string of text will be inserted instead.
Example
use extended_pulldown::Event::*; use extended_pulldown::Tag; let events = vec![ Start(Tag::Paragraph), Text("Hello".into()), FootnoteReference("1".into()), End(Tag::Paragraph), Start(Tag::FootnoteDefinition("1".into())), Start(Tag::Paragraph), Text("World".into()), End(Tag::Paragraph), End(Tag::FootnoteDefinition("1".into())), ]; let flattened = extended_pulldown::flatten_footnotes(events); let expected = vec![ Start(Tag::Paragraph), Text("Hello".into()), Start(Tag::FlattenedFootnote), Text("World".into()), End(Tag::FlattenedFootnote), End(Tag::Paragraph) ]; assert_eq!(flattened, expected);