From 6227f4e52fdc884b58670a301ba3d72a8f4f3bca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Mazzucotelli?= Date: Tue, 4 Aug 2026 10:03:32 +0000 Subject: [PATCH] feature: support `strict` configuration option (#840) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Timothée Mazzucotelli --- crates/zensical/src/config/project.rs | 2 ++ crates/zensical/src/lib.rs | 4 +++- python/zensical/config.py | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/zensical/src/config/project.rs b/crates/zensical/src/config/project.rs index b80659d..635623d 100644 --- a/crates/zensical/src/config/project.rs +++ b/crates/zensical/src/config/project.rs @@ -62,6 +62,8 @@ pub struct Project { pub site_dir: String, /// Whether to use directory URLs. pub use_directory_urls: bool, + /// Whether to abort the build on any warnings. + pub strict: bool, /// Development server address. pub dev_addr: String, /// Copyright notice. diff --git a/crates/zensical/src/lib.rs b/crates/zensical/src/lib.rs index b7fd4fd..1ec11a8 100644 --- a/crates/zensical/src/lib.rs +++ b/crates/zensical/src/lib.rs @@ -185,7 +185,9 @@ fn run(config_file: &PathBuf, mode: Mode) -> PyResult { // Determine if strict mode is enabled let strict = match &mode { - Mode::Build(options) => options.strict.unwrap_or(false), + Mode::Build(options) => { + options.strict.unwrap_or(false) || config.project.strict + } Mode::Serve(_, _) => false, }; diff --git a/python/zensical/config.py b/python/zensical/config.py index 1f10f54..2096ddd 100644 --- a/python/zensical/config.py +++ b/python/zensical/config.py @@ -411,6 +411,7 @@ def _apply_defaults(config: dict, path: str) -> dict: set_default(config, "site_description", None, str) set_default(config, "site_author", None, str) set_default(config, "use_directory_urls", True, bool) + set_default(config, "strict", False, bool) set_default(config, "dev_addr", "localhost:8000", str) set_default(config, "copyright", None, str) set_default(config, "watch", [], list)