1use anyhow::Result;
2use pulldown_cmark::{Options, Parser};
3use pulldown_cmark_to_cmark::cmark;
4use serde_json::Value;
5
6pub fn format_markdown(input: &str) -> Result<String> {
7 let mut options = Options::empty();
8 options.insert(Options::ENABLE_TABLES);
9 options.insert(Options::ENABLE_FOOTNOTES);
10 options.insert(Options::ENABLE_STRIKETHROUGH);
11 options.insert(Options::ENABLE_TASKLISTS);
12
13 let parser = Parser::new_ext(input, options);
14 let mut output = String::new();
15 cmark(parser, &mut output)?;
16 Ok(output)
17}
18
19pub fn format_json(input: &str) -> Result<String> {
20 let parsed: Value = serde_json::from_str(input)?;
21 Ok(serde_json::to_string_pretty(&parsed)?)
22}