32 lines
809 B
Python
32 lines
809 B
Python
import re
|
|
from pathlib import Path
|
|
|
|
from config import STORAGE_DIR, PROJECTS_DIR
|
|
|
|
|
|
def _safe(name: str) -> str:
|
|
return name.replace("/", "_").replace("\x00", "")
|
|
|
|
|
|
def guide_content_path(topic: str, format_name: str) -> Path:
|
|
return STORAGE_DIR / "guides" / f"{_safe(topic)} - {format_name}.json"
|
|
|
|
|
|
def bausteine_path(topic: str) -> Path:
|
|
return STORAGE_DIR / "bausteine" / f"{_safe(topic)}.md"
|
|
|
|
|
|
def bausteine_topics() -> list[str]:
|
|
"""Themen, für die eine finale Baustein-Datei existiert (ohne Zwischendateien)."""
|
|
bdir = STORAGE_DIR / "bausteine"
|
|
if not bdir.is_dir():
|
|
return []
|
|
return [
|
|
p.stem for p in bdir.glob("*.md")
|
|
if not re.search(r"\.(recherche-\d+|auswahl)$", p.stem)
|
|
]
|
|
|
|
|
|
def project_dir(name: str) -> Path:
|
|
return PROJECTS_DIR / name
|