Pi66

Home | Repos | About | Blog | Gaza

merodi
A markdown-based static site generator.
git clone https://git.pi66.xyz/merodi

About | Files | Commits | Refs | License


fix: escape code blocks with raw tags instead of manual char replacement

Author: pi66
Date: 2026-06-27 18:23
commit: 2dc00ecb

Stat

M src/build.py 7 +5 -2

Diff

diff --git a/src/build.py b/src/build.py
index 108a34f..995d79b 100644
--- a/src/build.py
+++ b/src/build.py
@@ -72,8 +72,11 @@ def jinja_handler(file, html_content, config=None):
 
 def escape_code_blocks(md_content: str) -> str:
     def wrap(m):
-        return m.group(0).replace("{", "{{ '{' }}")
-    return re.sub(r'`+[\s\S]*?`+', wrap, md_content)
+        return "\n{% raw %}\n" + m.group(0) + "\n{% endraw %}\n"
+
+    md_content = re.sub(r'`{3}[\s\S]*?`{3}', wrap, md_content)  # fenced ```
+    md_content = re.sub(r'`[^`\n]+`', wrap, md_content)          # inline `
+    return md_content
 
 def save_html(html_content:str, html_dest:str):
     makedirs( dirname( abspath(html_dest)), exist_ok=True )

// Created by Pi66

// Copyright ©Pi66 2026