merodi
A markdown-based static site generator.
git clone https://git.pi66.xyz/merodi
About | Files | Commits | Refs | License
fix: patch attr_list to use [ ] instead of { } to avoid Jinja2 conflicts
Author: pi66
Date: 2026-06-26 01:04
commit: 3736c27f
Stat
| M | src/build.py | 15 | +12 | -3 |
Diff
diff --git a/src/build.py b/src/build.py
index 77b96b0..5802c12 100644
--- a/src/build.py
+++ b/src/build.py
@@ -1,14 +1,23 @@
+import importlib.util
+import re
+
+from jinja2 import Environment, FileSystemLoader
+from markdown import markdown
+from markdown.extensions.attr_list import AttrListTreeprocessor
from os import getcwd, makedirs, path, walk
from os.path import abspath, dirname
-from markdown import markdown
-from jinja2 import Environment, FileSystemLoader
-import importlib.util
from .config import find_project_from_path, load_tree_config
from .errors import fatal, html_fatal
from .fileops import read_file, write_file
...
Show all
Show less
diff --git a/src/build.py b/src/build.py
index 77b96b0..5802c12 100644
--- a/src/build.py
+++ b/src/build.py
@@ -1,14 +1,23 @@
+import importlib.util
+import re
+
+from jinja2 import Environment, FileSystemLoader
+from markdown import markdown
+from markdown.extensions.attr_list import AttrListTreeprocessor
from os import getcwd, makedirs, path, walk
from os.path import abspath, dirname
-from markdown import markdown
-from jinja2 import Environment, FileSystemLoader
-import importlib.util
from .config import find_project_from_path, load_tree_config
from .errors import fatal, html_fatal
from .fileops import read_file, write_file
...
diff --git a/src/build.py b/src/build.py
index 77b96b0..5802c12 100644
--- a/src/build.py
+++ b/src/build.py
@@ -1,14 +1,23 @@
+import importlib.util
+import re
+
+from jinja2 import Environment, FileSystemLoader
+from markdown import markdown
+from markdown.extensions.attr_list import AttrListTreeprocessor
from os import getcwd, makedirs, path, walk
from os.path import abspath, dirname
-from markdown import markdown
-from jinja2 import Environment, FileSystemLoader
-import importlib.util
from .config import find_project_from_path, load_tree_config
from .errors import fatal, html_fatal
from .fileops import read_file, write_file
from .log import GRAY, info
+# patch [ ] instead of { }
+AttrListTreeprocessor.BASE_RE = r'[:?[ ]*([^]\n ][^\n]*)[ ]*]'
+AttrListTreeprocessor.BLOCK_RE = re.compile(r'\n[ ]*{}[ ]*$'.format(AttrListTreeprocessor.BASE_RE))
+AttrListTreeprocessor.HEADER_RE = re.compile(r'[ ]+{}[ ]*$'.format(AttrListTreeprocessor.BASE_RE))
+AttrListTreeprocessor.INLINE_RE = re.compile(r'^{}'.format(AttrListTreeprocessor.BASE_RE))
+
replace_filters = [
("<p>{%" , "{%" ),
("%}</p>", "%}" ),