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: allow plugins to import local modules

Author: pi66
Date: 2026-07-04 14:31
commit: d65963d9

Stat

A src/build.py 4 +4 -0

Diff

diff --git a/src/build.py b/src/build.py
index 5ef9b87..cf4bbfb 100644
--- a/src/build.py
+++ b/src/build.py
@@ -26,6 +26,8 @@ replace_filters = [
 ]

def load_plugins(path): + module_dir = dirname(abspath(path)) + sys.path.insert(0, module_dir) try: spec = importlib.util.spec_from_file_location("plugins", path) module = importlib.util.module_from_spec(spec) @@ -39,6 +41,8 @@ def load_plugins(path):

 except Exception as e:
     raise RuntimeError(f"Failed loading plugin {path}: {e}") from e

+ finally: + sys.path.pop(0)

...
Show all
diff --git a/src/build.py b/src/build.py
index 5ef9b87..cf4bbfb 100644
--- a/src/build.py
+++ b/src/build.py
@@ -26,6 +26,8 @@ replace_filters = [
 ]

def load_plugins(path): + module_dir = dirname(abspath(path)) + sys.path.insert(0, module_dir) try: spec = importlib.util.spec_from_file_location("plugins", path) module = importlib.util.module_from_spec(spec) @@ -39,6 +41,8 @@ def load_plugins(path):

 except Exception as e:
     raise RuntimeError(f"Failed loading plugin {path}: {e}") from e

+ finally: + sys.path.pop(0)

def html_filter(html_content:str):

// Created by Pi66

// Copyright ©Pi66 2026