summaryrefslogtreecommitdiff
path: root/src/internal/markdown.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal/markdown.rs')
-rw-r--r--src/internal/markdown.rs21
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")
+}