fix(pptx): argument optioneel, en duidelijke melding bij de verkeerde map of de notitieversie

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Guido van Dijk
2026-09-22 21:21:00 +02:00
parent 04022db0cf
commit 25c6edad88
2 changed files with 28 additions and 5 deletions
Binary file not shown.
+28 -5
View File
@@ -7,8 +7,10 @@ alleen de dia ziet. Het beeld is een afbeelding: de opmaak is precies gelijk aan
de tekst is in PowerPoint niet te bewerken. Wijzigen doe je in maak_dias.py en dan opnieuw
bouwen.
Gebruik: python3 ../_gereedschap/maak_pptx.py <dia-pdf>
Bijvoorbeeld in 00-sessie: python3 ../_gereedschap/maak_pptx.py sessie-agents-en-projecten.pdf
Gebruik: python3 ../_gereedschap/maak_pptx.py
vanuit de map van de presentatie (00-sessie, 00-lezing, 00-presentatie). Het script
zoekt zelf de dia-PDF, dus die van de dia's en niet de notitieversie. Staat er meer dan
een, geef dan de naam mee: python3 ../_gereedschap/maak_pptx.py sessie-agents-en-projecten.pdf
Staat er een notities-begeleider.json naast maak_dias.py, dan gebruikt het script die
uitgebreide notities en zegt het erbij; dat bestand is privé, dus deel die pptx niet.
@@ -28,10 +30,31 @@ except ImportError:
sys.exit("python-pptx ontbreekt. Bijvoorbeeld: ~/.local/venvs/uitlegvideo/bin/python "
"../_gereedschap/maak_pptx.py <dia-pdf>")
pdf = Path(sys.argv[1]).resolve()
if not pdf.exists():
sys.exit(f"niet gevonden: {pdf}")
def zoek_dia_pdf(waar: Path) -> Path:
"""De PDF van de dia's in deze map: zonder -met-notities in de naam."""
if not (waar / "maak_dias.py").exists():
sys.exit(f"{waar} is geen presentatiemap. Draai dit vanuit 00-sessie, 00-lezing of "
f"00-presentatie, of geef het pad naar de dia-PDF mee.")
kandidaten = [f for f in sorted(waar.glob("*.pdf")) if not f.stem.endswith("-met-notities")]
if not kandidaten:
sys.exit(f"geen dia-PDF in {waar.name}; bouw hem eerst met python3 bouw_pdf.py")
if len(kandidaten) > 1:
namen = ", ".join(f.name for f in kandidaten[:5])
sys.exit(f"meerdere PDF's in {waar.name} ({namen}); geef de naam van de dia-PDF mee")
return kandidaten[0]
if len(sys.argv) > 1:
pdf = Path(sys.argv[1]).resolve()
if not pdf.exists():
sys.exit(f"niet gevonden: {pdf}")
if pdf.stem.endswith("-met-notities"):
sys.exit(f"{pdf.name} is de notitieversie. Geef de PDF van de dia's, of laat het argument weg.")
else:
pdf = zoek_dia_pdf(Path.cwd())
MAP = pdf.parent
if not (MAP / "maak_dias.py").exists():
sys.exit(f"geen maak_dias.py in {MAP}; draai dit vanuit de map van een presentatie")
P = MAP / "project"
PRIVE = (MAP / "notities-begeleider.json").exists()