From ed7a5cfe5508f3b7b1f79149c4436679b191f4fd Mon Sep 17 00:00:00 2001 From: memdmp Date: Wed, 15 Jan 2025 13:46:53 +0100 Subject: feat: markdown tool --- markdown-tool/src/main.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 markdown-tool/src/main.rs (limited to 'markdown-tool/src') diff --git a/markdown-tool/src/main.rs b/markdown-tool/src/main.rs new file mode 100644 index 0000000..f321c63 --- /dev/null +++ b/markdown-tool/src/main.rs @@ -0,0 +1,26 @@ +use std::io::BufRead; + +use pulldown_cmark::{html, Options, Parser}; + +fn main() { + let stdin = std::io::stdin(); + let mut markdown_input = format!(""); + for line in stdin.lock().lines() { + markdown_input = format!("{markdown_input}{}\n", line.unwrap()) + } + + let mut options = Options::empty(); + options.insert(Options::ENABLE_STRIKETHROUGH); + options.insert(Options::ENABLE_FOOTNOTES); + options.insert(Options::ENABLE_TABLES); + options.insert(Options::ENABLE_TASKLISTS); + options.insert(Options::ENABLE_YAML_STYLE_METADATA_BLOCKS); + options.insert(Options::ENABLE_GFM); + let parser = Parser::new_ext(&markdown_input, options); + let mut html_output: String = String::with_capacity(markdown_input.len() * 3 / 2); + html::push_html(&mut html_output, parser); + println!( + " +{html_output}" + ) +} -- cgit v1.2.3