From de23fd88828d63f64f0a137b2fb6e87eaa7e1ce6 Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Sun, 22 Feb 2026 11:46:46 -0600 Subject: fix: ensure .org filenames match .html filenames (#16) --- build.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'build.py') diff --git a/build.py b/build.py index f6d8699..7c466f2 100644 --- a/build.py +++ b/build.py @@ -272,7 +272,27 @@ def copy_org_sources(content_dir="./content", build_dir="./.build/org"): print(f"Copying org sources: {content_dir} → {build_dir}") if os.path.exists(build_dir): shutil.rmtree(build_dir) - shutil.copytree(content_dir, build_dir) + + slug_pattern = re.compile(r"^#\+slug:\s*(.+)$", re.IGNORECASE) + + for src_path in Path(content_dir).rglob("*.org"): + rel_dir = src_path.parent.relative_to(content_dir) + dest_dir = Path(build_dir) / rel_dir + dest_dir.mkdir(parents=True, exist_ok=True) + + # Try to extract slug from file headers + slug = None + with src_path.open("r", encoding="utf-8") as f: + for line in f: + m = slug_pattern.match(line) + if m: + slug = m.group(1).strip() + break + + dest_name = f"{slug}.org" if slug else src_path.name + shutil.copy2(src_path, dest_dir / dest_name) + if slug: + print(f" {src_path.name} → {dest_name}") def generate_sitemap(build_dir=".build", base_url="https://cleberg.net"): -- cgit v1.2.3