#![cfg_attr(docsrs, feature(doc_cfg))]
#![deny(
missing_docs,
missing_debug_implementations,
missing_copy_implementations,
trivial_casts,
trivial_numeric_casts,
unstable_features,
unused_import_braces
)]
#![allow(
unknown_lints,
clippy::doc_markdown,
cyclomatic_complexity,
clippy::bool_to_int_with_if,
clippy::too_many_arguments
)]
pub mod adapters;
pub mod arena_tree;
pub mod html;
pub mod nodes;
pub mod plugins;
mod character_set;
mod cm;
mod ctype;
mod entity;
mod parser;
mod scanners;
mod strings;
#[cfg(test)]
mod tests;
mod xml;
pub use cm::escape_inline as escape_commonmark_inline;
pub use cm::escape_link_destination as escape_commonmark_link_destination;
pub use cm::format_document as format_commonmark;
pub use cm::format_document_with_plugins as format_commonmark_with_plugins;
#[doc(inline)]
pub use html::Anchorizer;
pub use html::format_document as format_html;
pub use html::format_document_with_plugins as format_html_with_plugins;
pub use nodes::Node;
pub use parser::options;
pub use parser::{Options, ResolvedReference, parse_document};
pub use xml::format_document as format_xml;
pub use xml::format_document_with_plugins as format_xml_with_plugins;
pub type Arena<'a> = typed_arena::Arena<nodes::AstNode<'a>>;
pub fn markdown_to_html(md: &str, options: &Options) -> String {
markdown_to_html_with_plugins(md, options, &options::Plugins::default())
}
pub fn markdown_to_html_with_plugins(
md: &str,
options: &Options,
plugins: &options::Plugins,
) -> String {
let arena = Arena::new();
let root = parse_document(&arena, md, options);
let mut out = String::new();
format_html_with_plugins(root, options, &mut out, plugins).unwrap();
out
}
pub fn version() -> &'static str {
env!("CARGO_PKG_VERSION")
}
pub fn markdown_to_commonmark(md: &str, options: &Options) -> String {
let arena = Arena::new();
let root = parse_document(&arena, md, options);
let mut out = String::new();
format_commonmark(root, options, &mut out).unwrap();
out
}
pub fn markdown_to_commonmark_xml(md: &str, options: &Options) -> String {
markdown_to_commonmark_xml_with_plugins(md, options, &options::Plugins::default())
}
pub fn markdown_to_commonmark_xml_with_plugins(
md: &str,
options: &Options,
plugins: &options::Plugins,
) -> String {
let arena = Arena::new();
let root = parse_document(&arena, md, options);
let mut out = String::new();
format_xml_with_plugins(root, options, &mut out, plugins).unwrap();
out
}