diff options
feat: markdown tool
Diffstat (limited to 'markdown-tool/src')
| -rw-r--r-- | markdown-tool/src/main.rs | 26 | 
1 files changed, 26 insertions, 0 deletions
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!( +    "<style>@import url(\"/assets/md.css\")</style> +{html_output}" +  ) +}  |