Automatischer Push: 45 Datei(en) geändert
- .claude/agents/planer.md - .claude/agents/quorum-stimme.md - .claude/skills/bookstack-upload/SKILL.md - .claude/skills/bookstack-upload/scripts/bookstack/archiv.py - .claude/skills/bookstack-upload/scripts/bookstack/auswahl.py - .claude/skills/bookstack-upload/scripts/bookstack/beschreibung.py - .claude/skills/bookstack-upload/scripts/bookstack/bilder.py - .claude/skills/bookstack-upload/scripts/bookstack/ergebnis.py - .claude/skills/bookstack-upload/scripts/bookstack/hochladen.py - .claude/skills/bookstack-upload/scripts/bookstack/konvertierung.py - .claude/skills/bookstack-upload/scripts/bookstack/struktur.py - .claude/skills/bookstack-upload/scripts/bookstack/verweise.py - … und 33 weitere Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
1 parent
e8472409e9
commit
eb48f8822d
45 files changed
+8645
-262
No files matched your search
@@ -0,0 +1,69 @@
|
||||
"""Ergebnistypen eines Laufs: Berichtszeile samt dem Stand, den die Verweisrunde braucht.
|
||||
|
||||
Ersteller: Pascal Michel
|
||||
Erstellt: 2026-09-30
|
||||
Doku: docs/code/ergebnis.md · Version und Änderungen: CHANGELOG.md
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
|
||||
from bookstack.struktur import Ziel
|
||||
|
||||
# Aktionen, deren Datei danach archiviert wird und deren Seite in den Endindex kommt.
|
||||
ARCHIVIERBAR = ("ANLEGEN", "AKTUALISIEREN", "ÜBERSPRUNGEN")
|
||||
|
||||
|
||||
@dataclass
|
||||
class Seitenstand:
|
||||
"""Was Durchgang 1 über eine Seite weiß; Eingang der Verweisrunde."""
|
||||
|
||||
titel: str
|
||||
rumpf: str # ohne Titelüberschrift, Eingang für konvertiere
|
||||
ziel: Ziel
|
||||
seiten_id: int | None # None nur bei ANLEGEN im Probelauf
|
||||
prioritaet: int | None
|
||||
markdown: str # bildfrei, Verweise nach Index aus Durchgang 1
|
||||
aufgeloeste_verweise: dict[str, str]
|
||||
offene_verweise: list[str]
|
||||
bildnamen: list[str]
|
||||
bilder: dict[str, str] | None # Tabelle des letzten PUT in Durchgang 1; None = kein PUT
|
||||
|
||||
|
||||
@dataclass
|
||||
class Beschreibungsstand:
|
||||
"""Was Durchgang 1 über eine Buch- oder Kapitelbeschreibung weiß."""
|
||||
|
||||
art: str # "buch" | "kapitel"
|
||||
ziel_id: int
|
||||
vorspann: str
|
||||
html: str
|
||||
aufgeloeste_verweise: dict[str, str]
|
||||
|
||||
|
||||
@dataclass
|
||||
class Ergebnis:
|
||||
"""Eine Berichtszeile; seite und beschreibung tragen nur Zeilen aus Durchgang 1."""
|
||||
|
||||
pfad: Path
|
||||
aktion: str
|
||||
text: str
|
||||
seite: Seitenstand | None = None
|
||||
beschreibung: Beschreibungsstand | None = None
|
||||
|
||||
|
||||
def seiten_nutzlast(
|
||||
titel: str, ziel: Ziel, markdown: str, prioritaet: int | None = None
|
||||
) -> dict[str, object]:
|
||||
"""name, markdown, chapter_id (wenn ziel.kapitel_id) sonst book_id, priority wenn nicht None."""
|
||||
daten: dict[str, object] = {"name": titel, "markdown": markdown}
|
||||
# Bewusst wahr/falsch statt is None: Die Platzhalter-ID 0 geht nie als chapter_id hinaus.
|
||||
if ziel.kapitel_id:
|
||||
daten["chapter_id"] = ziel.kapitel_id
|
||||
else:
|
||||
daten["book_id"] = ziel.buch_id
|
||||
if prioritaet is not None:
|
||||
daten["priority"] = prioritaet
|
||||
return daten
|
||||
Reference in new issue
Block a user