#!/usr/bin/env python3 import re import sys from pathlib import Path if len(sys.argv) != 3: raise SystemExit(f"Aufruf: {sys.argv[0]} EINGABE.md AUSGABE_ORDNER") src = Path(sys.argv[1]) outdir = Path(sys.argv[2]) outdir.mkdir(parents=True, exist_ok=True) text = src.read_text(encoding="utf-8") parts = re.split(r"(?m)^(?=#\s+)", text) def slugify(title: str) -> str: title = title.lower() title = re.sub(r"[^\w\s-]", "", title, flags=re.UNICODE) title = re.sub(r"[\s_-]+", "-", title).strip("-") return title[:80] or "kapitel" index = [] chapter_no = 0 for part in parts: if not part.strip(): continue m = re.match(r"^#\s+(.+?)\s*$", part, re.M) if m: chapter_no += 1 title = m.group(1).strip() filename = f"{chapter_no:03d}-{slugify(title)}.md" else: filename = "000-vorspann.md" title = "Vorspann" (outdir / filename).write_text(part.rstrip() + "\n", encoding="utf-8") index.append(f"- [{title}]({filename})") (outdir / "README.md").write_text( "# Inhaltsverzeichnis\n\n" + "\n".join(index) + "\n", encoding="utf-8", )