use crate::Atom;
use crate::Container;
use crate::Event;
/// Generate HTML from parsed events and push it to a unicode-accepting buffer or stream.
pub fn push<'s, I: Iterator ")?,
Container::Heading { level } => write!(self.out, "")?,
Container::List(..) => todo!(),
Container::ListItem => self.out.write_str("
")?,
Container::DescriptionDetails => self.out.write_str("
")?,
Container::TableRow => self.out.write_str("
")?,
Container::TableRow => self.out.write_str("")?,
Container::Div => self.out.write_str("")?,
Container::Span => self.out.write_str("")?,
Container::Paragraph => self.out.write_str("")?,
Container::Div => self.out.write_str(" ")?,
Container::RawBlock { .. } => todo!(),
Container::CodeBlock { .. } => todo!(),
Container::Subscript => self.out.write_str("")?,
Container::Superscript => self.out.write_str("")?,
Container::Insert => self.out.write_str("")?,
Container::Delete => self.out.write_str(" ")?,
Container::Strong => self.out.write_str("")?,
Container::Emphasis => self.out.write_str("")?,
Container::Mark => self.out.write_str("")?,
Container::SingleQuoted => self.out.write_str("‘")?,
Container::DoubleQuoted => self.out.write_str("“")?,
}
}
Event::End(c) => {
if c.is_block_container() && !matches!(c, Container::Footnote { .. }) {
self.out.write_char('\n')?;
}
match c {
Container::Blockquote => self.out.write_str("")?,
Container::List(..) => todo!(),
Container::ListItem => self.out.write_str("")?,
Container::DescriptionList => self.out.write_str("")?,
Container::DescriptionDetails => self.out.write_str("")?,
Container::Footnote { .. } => todo!(),
Container::Table => self.out.write_str("
{}
", s)?,
Event::Math { content, display } => {
if display {
write!(
self.out,
r#"\[{}\]"#,
content,
)?;
} else {
write!(
self.out,
r#"\({}\)"#,
content,
)?;
}
}
Event::Atom(a) => match a {
Atom::Ellipsis => self.out.write_str("…")?,
Atom::EnDash => self.out.write_str("–")?,
Atom::EmDash => self.out.write_str("—")?,
Atom::ThematicBreak => self.out.write_str("\n