diff options
Diffstat (limited to 'src/internal/markdown.rs')
-rw-r--r-- | src/internal/markdown.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/internal/markdown.rs b/src/internal/markdown.rs new file mode 100644 index 0000000..9798876 --- /dev/null +++ b/src/internal/markdown.rs @@ -0,0 +1,21 @@ +use color_eyre::{Result, eyre::Context}; +use comrak::{ComrakOptions, Arena, parse_document, format_html}; + + +pub fn render(inp: &str) -> Result<String> { + let mut options = ComrakOptions::default(); + options.extension.autolink = true; + options.extension.table = true; + options.extension.superscript = true; + options.extension.footnotes = true; + + options.render.unsafe_ = true; + + let arena = Arena::new(); + let root = parse_document(&arena, inp, &options); + + let mut html = vec![]; + format_html(root, &options, &mut html).unwrap(); + + String::from_utf8(html).wrap_err("this is somehow not UTF-8") +} |