pub use pulldown_cmark::{self, Options};
use pulldown_cmark::{Event, Parser};
use vertigo::DomNode;
mod generate;
mod policy;
mod styling;
pub use policy::{ElementAction, HtmlPolicy, SafeHtml, TrustedHtml, is_safe_url};
pub use styling::CMarkStyle;
#[cfg(feature = "syntect")]
mod highlighting;
#[cfg(test)]
mod tests;
pub fn to_vertigo(text: &str) -> DomNode {
to_vertigo_opts(text, Options::ENABLE_TABLES)
}
pub fn to_vertigo_opts(text: &str, opts: Options) -> DomNode {
let parser = Parser::new_ext(text, opts);
generate::generate_tree(parser, CMarkStyle::default(), &SafeHtml)
}
pub fn to_vertigo_styled(text: &str, style: CMarkStyle) -> DomNode {
let parser = Parser::new_ext(text, Options::ENABLE_TABLES);
generate::generate_tree(parser, style, &SafeHtml)
}
pub fn to_vertigo_opts_styled(text: &str, opts: Options, style: CMarkStyle) -> DomNode {
let parser = Parser::new_ext(text, opts);
generate::generate_tree(parser, style, &SafeHtml)
}
pub fn events_to_vertigo<'a, I>(events: I, style: CMarkStyle, policy: &'a dyn HtmlPolicy) -> DomNode
where
I: IntoIterator<Item = Event<'a>>,
I::IntoIter: 'a,
{
generate::generate_tree(events.into_iter(), style, policy)
}