From c33d65b0f891bd85c30b91bfdcbf286242938b9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Mazzucotelli?= Date: Tue, 7 Jul 2026 15:41:55 +0200 Subject: [PATCH] fix: support enabled option in autorefs, glightbox and macros extensions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Timothée Mazzucotelli --- python/zensical/config.py | 10 ++++++---- python/zensical/extensions/autorefs.py | 6 ++++++ python/zensical/extensions/glightbox.py | 3 +++ python/zensical/extensions/macros.py | 5 +++++ 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/python/zensical/config.py b/python/zensical/config.py index cf1dea5..f4f8118 100644 --- a/python/zensical/config.py +++ b/python/zensical/config.py @@ -877,16 +877,18 @@ def _shim_glightbox(config: dict[str, Any]) -> None: # Map glightbox plugin configuration to the extension configuration if "glightbox" in config["plugins"]: plugin = config["plugins"]["glightbox"]["config"] - config["markdown_extensions"].append(GlightboxExtension.name) - config["mdx_configs"][GlightboxExtension.name] = plugin + if plugin.get("enabled", True): + config["markdown_extensions"].append(GlightboxExtension.name) + config["mdx_configs"][GlightboxExtension.name] = plugin def _shim_macros(config: dict[str, Any]) -> None: # Map macros plugin configuration to the extension configuration if "macros" in config["plugins"]: plugin = config["plugins"]["macros"]["config"] - config["markdown_extensions"].append(MacrosExtension.name) - config["mdx_configs"][MacrosExtension.name] = plugin + if plugin.get("enabled", True): + config["markdown_extensions"].append(MacrosExtension.name) + config["mdx_configs"][MacrosExtension.name] = plugin # ---------------------------------------------------------------------------- diff --git a/python/zensical/extensions/autorefs.py b/python/zensical/extensions/autorefs.py index 77d909b..a209032 100644 --- a/python/zensical/extensions/autorefs.py +++ b/python/zensical/extensions/autorefs.py @@ -366,8 +366,14 @@ class AutorefsExtension(Extension): name = "zensical.extensions.autorefs" + def __init__(self, **kwargs: Any) -> None: + """Initialize the extension.""" + self._enabled: bool = kwargs.pop("enabled", True) + def extendMarkdown(self, md: Markdown) -> None: """Register the Markdown extension.""" + if not self._enabled: + return md.registerExtension(self) inline_processor = AutorefsInlineProcessor(md) diff --git a/python/zensical/extensions/glightbox.py b/python/zensical/extensions/glightbox.py index 9fac155..7de926c 100644 --- a/python/zensical/extensions/glightbox.py +++ b/python/zensical/extensions/glightbox.py @@ -283,10 +283,13 @@ class GlightboxExtension(Extension): def __init__(self, **kwargs: Any) -> None: """Initialize the extension.""" + self._enabled: bool = kwargs.pop("enabled", True) self._kwargs = kwargs def extendMarkdown(self, md: Markdown) -> None: """Register Markdown extension.""" + if not self._enabled: + return md.registerExtension(self) config = GlightboxConfig(**self._kwargs) diff --git a/python/zensical/extensions/macros.py b/python/zensical/extensions/macros.py index 706ab0c..526daf6 100644 --- a/python/zensical/extensions/macros.py +++ b/python/zensical/extensions/macros.py @@ -378,9 +378,14 @@ class MacrosExtension(Extension): name = "zensical.extensions.macros" def __init__(self, **kwargs: Any) -> None: + """Initialize the extension.""" + self._enabled: bool = kwargs.pop("enabled", True) self._kwargs: dict[str, Any] = kwargs def extendMarkdown(self, md: Markdown) -> None: + """Register Markdown extension.""" + if not self._enabled: + return md.registerExtension(self) config = MacrosConfig(**self._kwargs) preprocessor = MacrosPreprocessor(md, config)