From 8793284bd6a44b5145ee3fc373a5f6c66a971f19 Mon Sep 17 00:00:00 2001 From: Daniel Fichtinger Date: Sat, 12 Jul 2025 00:43:53 -0400 Subject: [PATCH] feat: clean output directory on build --- src/zona/builder.py | 12 +++++++++--- src/zona/config.py | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/zona/builder.py b/src/zona/builder.py index 31140c8..de16bf5 100644 --- a/src/zona/builder.py +++ b/src/zona/builder.py @@ -1,3 +1,4 @@ +import shutil from datetime import date from pathlib import Path @@ -50,9 +51,7 @@ class ZonaBuilder: if path.name.endswith(".md") and not path.is_relative_to( layout.root / "content" / "static" ): - logger.debug( - f"Parsing {path.name} as Markdown document." - ) + logger.debug(f"Parsing {path.name}.") item.metadata, item.content = parse_metadata(path) if ( item.metadata.draft @@ -140,6 +139,13 @@ class ZonaBuilder: util.copy_static_file(item.source, dst) def build(self): + # clean output if applicable + if ( + self.config.build.clean_output_dir + and self.layout.output.is_dir() + ): + logger.debug("Removing stale output...") + shutil.rmtree(self.layout.output) logger.debug("Discovering...") self._discover() logger.debug("Building...") diff --git a/src/zona/config.py b/src/zona/config.py index 63baac0..4bd7a42 100644 --- a/src/zona/config.py +++ b/src/zona/config.py @@ -54,7 +54,7 @@ class MarkdownConfig: @dataclass class BuildConfig: - # clean_output_dir: bool = True + clean_output_dir: bool = True include_drafts: bool = False