pub fn flatten_footnotes<'a, I>(src: I) -> Vec<Event<'a>>where
I: IntoIterator<Item = Event<'a>>,Expand description
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);