[[Uebersicht|← Zurück zur Homepage]]
# Formatvorlage – Word-/PDF-Ausgabe
Verbindliche Formatvorgabe für Notizen, die als **Word (`.docx`) bzw. PDF** zur externen Weitergabe erzeugt werden. Sie fasst den Standard zusammen, der bisher nur verteilt in den `_build`-READMEs der Projekte stand.
> [!info] Zielformat ist `.docx`, das PDF entsteht daraus
> Es gibt **keinen** direkten Markdown→PDF-Weg. Der Weg ist immer:
> **Markdown → `build_*.py` → Pandoc → `.docx` → `set_props.py` → in Word als PDF speichern.**
> Die `.docx`/PDF werden **nicht** eingecheckt – sie lassen sich jederzeit aus den Notizen neu erzeugen.
## Vorlagendateien und Skripte (kanonisch)
**Vorlagen-Assets** in `Assets/Vorlagen/`:
| Datei | Zweck |
|---|---|
| `reference-footer.docx` | Pandoc-Referenzvorlage: A4, Ränder, Fußzeile mit Logo + Seitenzahl |
| `obeco-logo.png` | Petrol-Logo für die Fußzeile (9 mm) |
**Gemeinsame Skripte** in `Assets/Vorlagen/_build/` (projektübergreifend, kein mitgeliefertes Werkzeug – Eigenbau, flicken Schwächen der Pandoc-docx-Ausgabe):
| Skript | Zweck |
|---|---|
| `make_ref.py` | Baut/erneuert `reference-footer.docx` (A4 + Fußzeile mit Logo) |
| `set_props.py` | Setzt die Dokumenteigenschaften, entfernt geerbte Falschwerte |
| `place_toc.py` | Schiebt das Inhaltsverzeichnis hinter die erste Notiz |
| `layout_ha.py` | Zieht den Adressblock vor das TOC, setzt Seitenumbrüche (generisch trotz Namens) |
Die **projektspezifischen Inhalts-Bauer** `build_cs.py` / `build_ha.py` / `build_marstek.py` bleiben in ihren jeweiligen `40 Projekte/…/_build/`- bzw. `_build/`-Ordnern – sie haben keinen Vorlagenbezug.
> [!info] Einzige Quelle
> Vorlage, Logo und die gemeinsamen Skripte liegen seit 24.07.2026 **ausschließlich** hier. Alle Pandoc-Aufrufe (Coole Senioren, Home Assistant, Marstek) verweisen mit `--reference-doc` auf `Assets/Vorlagen/reference-footer.docx`; die Pipeline-Schritte rufen die Skripte unter `Assets/Vorlagen/_build/` auf. Die früheren Kopien in den Projektordnern wurden entfernt. Vorlage neu bauen: `python "Assets/Vorlagen/_build/make_ref.py"`.
## Seitenlayout
| Merkmal | Vorgabe |
|---|---|
| Format | **A4** (11906 × 16838 twips) – nicht US Letter |
| Ränder | **25 mm** rundum |
| Fußzeile | **Obeco-Logo links** (9 mm hoch, proportional), **„Seite X von Y" mittig** |
| Sprache | **de-DE** |
> [!warning] A4 muss die Vorlage erzwingen
> Pandocs Standardvorlage setzt kein `pgSz` → ohne die Ergänzung fällt Pandoc auf US Letter zurück. Deshalb ist `reference-footer.docx` Pflicht (`--reference-doc`).
## Titelseite
- **Titel** und **Untertitel** (über `--metadata title` / `subtitle`)
- **Verfasser:** „Joachim Berger" (nur die Person – die Firma steht im Adressblock)
- **Firmenadresse:** Obeco GmbH (zentriert unter dem Titel; Quelle obeco.de/impressum)
- **Stand:** „Stand: TT.MM.JJJJ"
## Inhaltsverzeichnis
- Überschrift **„Inhaltsverzeichnis"** (deutsch, via `toc-title`)
- Bei Gesamtdokumenten: Verzeichnis **hinter die erste (kundenverständliche) Notiz** schieben (`place_toc.py`) – Pandoc kann die TOC-Position im docx nicht selbst steuern
- Word baut das Verzeichnis beim Öffnen neu auf (`w:dirty="true"`) → Seitenzahlen stimmen
## Dokumenteigenschaften (`set_props.py`)
Pflichtschritt für **jede** `.docx`. Setzt bewusst und räumt die aus der Pandoc-Vorlage geerbten Falschangaben weg:
| Feld | Wert |
|---|---|
| Titel | aussagekräftig **inkl. Untertitel** (PDF-Viewer/Google Drive zeigen `dc:title`, nicht den Dateinamen) |
| Thema | kurzer Sachbezug |
| Stichwörter | projektbezogene Schlagworte |
| Kategorie / Status | z. B. Konzept / Entwurf |
| Firma | **Obeco GmbH** |
| Anwendung | ehrlich **„Pandoc"** (nicht „Microsoft Word 12.0.0") |
| Statistik | entfernt → Word berechnet Seiten/Wörter beim Öffnen neu |
## Was beim Bauen aus den Notizen entfernt wird (`build_*.py`)
| Was | Warum |
|---|---|
| Navigations-Kopfzeile (alles vor der H1) | Vault-Navigation, im Word sinnlos |
| Status-Block + Änderungshistorie + Footer | interne Arbeitsstände |
| Abschnitt `## Quellen` | Vorgabe (nicht in die Weitergabe) |
| Inline-Marker `[1]`, `[3][4]` | zeigen nach Wegfall der Quellen ins Leere |
| Erledigte Punkte `- [x]` inkl. Folgezeilen | nur Offenes soll ins Word |
| Wikilinks `[[Ziel\|Label]]` | zu `Label` bzw. `Ziel` aufgelöst |
## Öffentliche Fassung (`--public`, projektabhängig)
Für öffentlich verlinkte PDFs (z. B. Google Drive / Blog) anonymisiert der Export identifizierende Angaben – **die Notizen selbst bleiben vollständig**. Umsetzung und Prüfregeln sind projektspezifisch (Beispiel Coole Senioren: Adresse → Region, Solarkataster-Werte + rückrechenbare Größen). Details in der jeweiligen `_build/README`.
## Werkzeuge
- **Pandoc** (getestet mit 3.10) – `C:\Program Files\Pandoc\pandoc.exe`
- **Python 3** – bei Unicode-Fehlern `PYTHONIOENCODING=utf-8` voranstellen
- **Word** – für den finalen Schritt „Als PDF speichern"
> [!warning] Zieldatei in Word schließen
> Ist die `.docx` in Word geöffnet, bricht Pandoc mit `permission denied` ab (Lockdatei `~$…docx`). `place_toc.py`/`set_props.py` prüfen die Sperre selbst und brechen sauber ab.
## Bestehende Pipelines (Beispiele)
| Projekt | Build |
|---|---|
| Coole Senioren | `40 Projekte/CooleSenioren/_build/` (README maßgeblich, ausführlichste Pipeline) |
| Home Assistant | `20 Software/Home Assistant/_build/` (nutzt die gemeinsame Vorlage + Skripte aus `Assets/Vorlagen/`) |
| Marstek Speicher | `30 Energie/01 Marstek Speicher/_build/` |
## Quellen
- `40 Projekte/CooleSenioren/_build/README.md` (v1.8, 17.07.2026) – Ursprung der hier zusammengefassten Vorgaben
---
**Status:** Aktiv
**Version:** 1.2
**Letzte Aktualisierung:** 24.07.2026, 08:15 Uhr
### Änderungshistorie
| Version | Datum | Uhrzeit | Änderung |
|---|---|---|---|
| 1.2 | 24.07.2026 | 08:15 | **Gemeinsame Build-Skripte zu den Vorlagen gezogen** (Nutzervorgabe): `make_ref.py`, `set_props.py`, `place_toc.py`, `layout_ha.py` per `git mv` nach `Assets/Vorlagen/_build/`. Aufrufe in den drei READMEs, den Skript-Docstrings und in [[Obeco-Kompetenzprofil]] auf die neuen Pfade umgestellt. Projektspezifische `build_*.py` bleiben in ihren Projektordnern. Skript-Übersicht hier ergänzt |
| 1.1 | 24.07.2026 | 08:15 | **Doppelte Vorlagendatei aufgeräumt** (Nutzervorgabe): `Assets/Vorlagen/` ist alleinige Quelle. `make_ref.py` schreibt/liest jetzt hier; die drei READMEs (Coole Senioren, Home Assistant, Marstek) auf `--reference-doc="Assets/Vorlagen/reference-footer.docx"` umgestellt; `.gitignore`-Ausnahme umgezogen; alte Kopien in `40 Projekte/CooleSenioren/_build/` entfernt (git-getrackt = gesichert) |
| 1.0 | 24.07.2026 | 08:15 | Erstfassung. Zentrale Formatvorlage aus den verteilten `_build`-READMEs zusammengeführt (Nutzervorgabe). Kanonische Vorlagendatei `reference-footer.docx` + Logo nach `Assets/Vorlagen/` gelegt; Layout-, Titel-, TOC-, Eigenschafts- und Bereinigungsregeln dokumentiert |
---
[[Impressum|Impressum]] | [[Datenschutzerklärung|Datenschutz]]