37 lines
836 B
Python
37 lines
836 B
Python
from pathlib import Path
|
|
|
|
from config import STORAGE_DIR, PROJECTS_DIR
|
|
|
|
THEMEN_DIR = STORAGE_DIR / "themen"
|
|
|
|
|
|
def _safe(name: str) -> str:
|
|
return name.replace("/", "_").replace("\x00", "")
|
|
|
|
|
|
def topic_dir(topic: str) -> Path:
|
|
return THEMEN_DIR / _safe(topic)
|
|
|
|
|
|
def arbeit_dir(topic: str) -> Path:
|
|
return topic_dir(topic) / "arbeit"
|
|
|
|
|
|
def bausteine_path(topic: str) -> Path:
|
|
return topic_dir(topic) / "bausteine.md"
|
|
|
|
|
|
def guide_content_path(topic: str, format_name: str) -> Path:
|
|
return topic_dir(topic) / "guides" / f"{format_name}.json"
|
|
|
|
|
|
def bausteine_topics() -> list[str]:
|
|
"""Themen, für die ein Themen-Ordner existiert."""
|
|
if not THEMEN_DIR.is_dir():
|
|
return []
|
|
return [d.name for d in THEMEN_DIR.iterdir() if d.is_dir()]
|
|
|
|
|
|
def project_dir(name: str) -> Path:
|
|
return PROJECTS_DIR / name
|