vertigo_cmark/
lib.rs

1pub use pulldown_cmark::Options;
2use pulldown_cmark::Parser;
3use vertigo::DomNode;
4
5mod generate;
6mod styling;
7pub use styling::CMarkStyle;
8
9#[cfg(feature = "syntect")]
10mod highlighting;
11
12#[cfg(test)]
13mod tests;
14
15/// Converts a CommonMark string to Vertigo tree with default options and styling.
16///
17/// NOTE: Tables are enabled by default.
18pub fn to_vertigo(text: &str) -> DomNode {
19    to_vertigo_opts(text, Options::ENABLE_TABLES)
20}
21
22/// Converts a CommonMark string to Vertigo tree with provided [Options] and default styling.
23pub fn to_vertigo_opts(text: &str, opts: Options) -> DomNode {
24    let parser = Parser::new_ext(text, opts);
25    generate::generate_tree(parser, CMarkStyle::default())
26}
27
28/// Converts a CommonMark string to Vertigo tree with default options and provided [styling](CMarkStyle).
29pub fn to_vertigo_styled(text: &str, style: CMarkStyle) -> DomNode {
30    let parser = Parser::new_ext(text, Options::ENABLE_TABLES);
31    generate::generate_tree(parser, style)
32}
33
34/// Converts a CommonMark string to Vertigo tree with provided [Options] and provided [styling](CMarkStyle).
35///
36/// NOTE: If you want highlighted code block, just enable `syntect` feature.
37pub fn to_vertigo_opts_styled(text: &str, opts: Options, style: CMarkStyle) -> DomNode {
38    let parser = Parser::new_ext(text, opts);
39    generate::generate_tree(parser, style)
40}