aboutsummaryrefslogtreecommitdiffstats
path: root/markdown-tool/src/main.rs
diff options
context:
space:
mode:
authorLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-01-15 13:46:53 +0100
committerLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-01-15 13:46:53 +0100
commited7a5cfe5508f3b7b1f79149c4436679b191f4fd (patch)
tree5225ca1e75d45a7f6dcf3a60b1a1b40447d00a73 /markdown-tool/src/main.rs
parent6b2ac29da71ee442ef66edde2a93614297553e62 (diff)
downloadcgit-oci-ed7a5cfe5508f3b7b1f79149c4436679b191f4fd.tar.gz
cgit-oci-ed7a5cfe5508f3b7b1f79149c4436679b191f4fd.tar.bz2
cgit-oci-ed7a5cfe5508f3b7b1f79149c4436679b191f4fd.tar.lz
cgit-oci-ed7a5cfe5508f3b7b1f79149c4436679b191f4fd.zip

feat: markdown tool

Diffstat (limited to 'markdown-tool/src/main.rs')
-rw-r--r--markdown-tool/src/main.rs26
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}"
+ )
+}