From 0b4de161b526cdd22d4171c5552734f07ac7985d Mon Sep 17 00:00:00 2001 From: Daniel Fichtinger Date: Sat, 21 Jun 2025 16:35:42 -0400 Subject: [PATCH] add directory normalization --- src/zona/builder.py | 10 +++++++++- tests/test_builder.py | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/zona/builder.py b/src/zona/builder.py index e99c4b0..c60599b 100644 --- a/src/zona/builder.py +++ b/src/zona/builder.py @@ -44,7 +44,15 @@ def discover(root: Path, out_dir: Path) -> list[Item]: item.metadata, item.content = split_metadata(path) item.type = ItemType.MARKDOWN item.copy = False - item.destination = destination.with_suffix(".html") + name = destination.stem + if name == "index": + item.destination = item.destination.with_suffix(".html") + else: + relative = path.relative_to(base).with_suffix("") + name = relative.stem + item.destination = ( + out_dir / relative.parent / name / "index.html" + ) items.append(item) return items diff --git a/tests/test_builder.py b/tests/test_builder.py index c75e36b..199d36f 100644 --- a/tests/test_builder.py +++ b/tests/test_builder.py @@ -57,7 +57,7 @@ p { md_item = items[0] assert md_item.source == md_file - assert md_item.destination.name == "post.md" + assert md_item.destination.name == "index.html" assert md_item.destination.is_relative_to(outd) assert md_item.url == "post.md" assert isinstance(md_item.metadata, Metadata) @@ -103,7 +103,7 @@ p { items = discover(tmp_path, outd) build(items) - html = (outd / "post.html").read_text() + html = (outd / "post" / "index.html").read_text() assert html.strip() == "

Hello World

" s = (outd / "static" / "style.css").read_text() assert s.strip() == style_content.strip()