diff --git a/Cargo.lock b/Cargo.lock index fe64553..259c166 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -208,6 +208,7 @@ dependencies = [ "clap", "lazy_static", "pulldown-cmark", + "pulldown-cmark-escape", "reqwest", "serde", "syntect", diff --git a/Cargo.toml b/Cargo.toml index b3b7529..cad5f3e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,6 +10,7 @@ chrono = "0.4.42" clap = { version = "4.5.54", features = ["derive"] } lazy_static = "1.5.0" pulldown-cmark = "0.13.0" +pulldown-cmark-escape = "0.11.0" serde = { version = "1.0.228", features = ["derive"] } syntect = "5.3.0" tera = "1.20.1" diff --git a/src/codeblocks.rs b/src/codeblocks.rs index 00abcf7..22f518a 100644 --- a/src/codeblocks.rs +++ b/src/codeblocks.rs @@ -1,4 +1,5 @@ use pulldown_cmark::{CodeBlockKind, CowStr, Event, Parser as MarkdownParser, Tag, TagEnd}; +use pulldown_cmark_escape::escape_html; use syntect::html::highlighted_html_for_string; use crate::{SYNTAX_SET, THEME_SET}; @@ -43,6 +44,12 @@ impl<'a> Iterator for CodeblockRenderer<'a> { let rendered_html = render_code_to_html(&code_content, lang); + let mut escaped_code = String::new(); + let _ = escape_html(&mut escaped_code, &code_content); + + let rendered_html = + rendered_html.replace("
{{ title }}
+
+
@@ -11,19 +13,43 @@
+
+