[][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);