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 )