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
Show less
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)
...
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):