S09: Teilgebiet 01 Iteration Links umgesetzt: alle URLs in cv.md auf explizite Markdown-Links migriert, damit Pandoc echte w:hyperlink-Elemente in die DOCX emittiert (vorher Plain-Text-only, Word zeigte sie nicht als Links und kein Hover funktionierte; im PDF wurden sie ueber Words eigene URL-Erkennung beim PDF-Export trotzdem klickbar, was die Inkonsistenz erklaerte). E-Mail als Pandoc-Autolink-Form mit spitzen Klammern (mailto), Telefon als tel:-Link mit Display-Spaces und URL-ohne-Spaces gem RFC 3966, Web-Links als doppelte-Bracket-Markdown-Syntax mit sichtbaren aeusseren eckigen Klammern als einheitlicher Anzeigetext-Stil. Display-Texte: Link zum Profil fuer LinkedIn und Freelance.de, destengs.de fuer Website (bewusster Wechsel von .com auf .de stimmiger zur deutschen Primaersprache), Dissertation fuer Promotion, Link zum Zertifikat funktioniert nur im Browser fuer TUEV-Zertifikat. TUEV-Link-Problem in Word diagnostiziert: certif-id.com liegt hinter Cloudflare-Bot-Schutz und blockiert Words urlmon-Pre-Flight-Anfrage mit 403; Direkt-Klick aus Word schlaegt mit Die angeforderten Informationen koennen nicht heruntergeladen werden fehl trotz funktionierender URL im Browser. Optionen A (destengs.de-Redirect), B (LinkedIn-Safety-Redirect), C (kein Link) abgewogen und verworfen, Option D gewaehlt: direkter TUEV-Link beibehalten mit erklaerendem Display-Text der den Empfaenger ueber die Word-Einschraenkung informiert. Thomas hat zusaetzlich eine kuerzere TUEV-Direkt-URL besorgt (perscert-tuv.certif-id.com/expert/public/share/7MR0WDzG106JDCqV_RW7) statt der urspruenglichen 130-Zeichen-Hash-URL. Zwischenfall: zweite Edit-Tool-Truncation in dieser Session auf cv.md beim Edit der TUEV- und Promotion-Zeile, die Schluss-Zeile Dissertation fuenf Veroeffentlichungen ein Patent eine Erfindungsmeldung wurde mitten im Wort abgeschnitten. Reparatur identisch zum S08-Pattern: git HEAD-Version als Input, alle 7 Link-Replacements in einem Python-Script atomar via os.replace zurueckgeschrieben mit count==1-Check pro Replacement. Lehre fuer kommende Sessions: Edit-Tool fuer cv.md generell nicht mehr verwenden, Python-aus-git-Pattern bevorzugen. Build und visuelle Bestaetigung durch Thomas erfolgt fuer DOCX und PDF. teilgebiete/01-lebenslauf.md um Iteration-Links-Block ergaenzt.

This commit is contained in:
tlg
2026-04-27 12:34:55 +02:00
parent 3e672dc8c9
commit 93bf43301e
7 changed files with 477 additions and 351 deletions

View File

@@ -216,6 +216,43 @@ Die in S04 mit docx-js erstellte Version hatte strukturelle typographische Mäng
**Hinweis (S08):** Pandoc verwendet im DOCX-Output `o` als E2-Bullet-Marker (nicht `` wie im PDF-LaTeX-Pfad). Das ist kein Problem — beide Marker passen mit dem Sondereinzug 0,4 cm.
## Iteration Links (S09) — Klickbare Hyperlinks im DOCX und PDF
**Anforderung:** In `cv.md` standen Adressen und URLs als Plain-Text. Im PDF (LuaLaTeX/`hyperref`) wurden sie automatisch klickbar, im DOCX in Word jedoch unsichtbar als Hyperlink — kein blaues Underline, kein Hover, kein Klick. Beim Word-zu-PDF-Export griff Words eigene URL-Erkennung und machte sie im exportierten PDF doch klickbar; diese Inkonsistenz hatte Thomas richtig wahrgenommen. Außerdem fehlte ein Link auf das TÜV-Zertifikat.
**Diagnose Hyperlink-Sichtbarkeit im DOCX:** Pandoc übernimmt nackte URLs ohne die Extension `autolink_bare_uris` 1:1 als Text in die DOCX, ohne `<w:hyperlink>`-Markup. Lösung: explizite Markdown-Link-Syntax in der Quelle, dann emittiert Pandoc echte Hyperlink-Elemente.
**Diagnose TÜV-Zertifikat-Link in Word:** Direkt-URL `perscert-tuv.certif-id.com/...` funktioniert im Browser, schlägt aber bei Word-Ctrl+Klick mit „Die angeforderten Informationen können nicht heruntergeladen werden" fehl. Ursache: Word führt vor dem eigentlichen Klick eine Pre-Flight-Anfrage über `urlmon.dll`/WinINet aus. Die certif-id.com-Domain liegt hinter Cloudflare-Bot-Schutz, der diese Anfrage als Bot klassifiziert und mit 403 abweist. Würde sich auch beim Empfänger (Recruiter) reproduzieren.
**Strategie für TÜV-Link (Optionen diskutiert):**
- A — Self-hosted 301-Redirect auf `destengs.de`: würde Word-seitig funktionieren, kann aber unseriös wirken; zur Verifikation soll möglichst die Aussteller-Website verlinkt sein.
- B — LinkedIn-Safety-Redirect mit gestrippten Session-Parametern: schnell, aber Abhängigkeit von einem nicht stabilen LinkedIn-Endpoint.
- C — Link weglassen: verschenkt das Verifikationsangebot.
- D (gewählt) — Direkt-Link auf certif-id.com beibehalten mit erklärendem Display-Text, der den Empfänger über die Word-Einschränkung informiert: „Link zum Zertifikat (funktioniert nur im Browser)". Manueller Copy-and-Paste der URL in den Browser funktioniert. Thomas hat zusätzlich eine kürzere Direkt-URL vom TÜV besorgt: `https://perscert-tuv.certif-id.com/expert/public/share/7MR0WDzG106JDCqV_RW7` (statt der ursprünglichen 130-Zeichen-Hash-URL).
**Display-Text-Stil:**
- Web-Links: kurze sprechende Labels mit sichtbaren äußeren eckigen Klammern als einheitlicher Stil über alle Web-Link-Anzeigetexte. Markdown-Syntax `[[text]](url)` rendert mit Pandoc als Link mit Display-Text `[text]` inkl. der äußeren Klammern (balanced brackets im Link-Text sind in CommonMark erlaubt).
- E-Mail: Pandoc-Autolink-Form `<email@domain>` (Sonderfall — keine Klammern, da die Adresse selbst die Information ist).
- Telefon: `[+49 ...](tel:+49...)` für mobile Clients (Display-Text mit Leerzeichen, URL ohne — RFC 3966).
**Konkrete Änderungen in `cv.md`:**
- E-Mail: `Thomas.Langer@destengs.com``<Thomas.Langer@destengs.com>`.
- Telefon: `+49 89 413 27 59 20``[+49 89 413 27 59 20](tel:+4989413275920)`.
- Freelance.de: nackte URL → `[[Link zum Profil]](URL)`.
- Website: `https://destengs.com``[[destengs.de]](https://destengs.de)` — bewusster Wechsel auf die deutsche Domain (stimmiger zur deutschen Primärsprache).
- LinkedIn: nackte URL → `[[Link zum Profil]](URL)`.
- Ausbildung TÜV-Zeile: trailing `TÜV-Zertifikat``[[Link zum Zertifikat (funktioniert nur im Browser)]](https://perscert-tuv.certif-id.com/expert/public/share/7MR0WDzG106JDCqV_RW7)`.
- Ausbildung Promotion-Zeile: nackte URL `depositonce.tu-berlin.de/.../Dokument_9.pdf``[[Dissertation]](URL)`.
**DOCX-Hyperlink-Stil:** Pandoc-Default belassen (klassisch blau-unterstrichen). Keine Anpassung in `build-reference-docx.py` nötig.
**Zwischenfall — zweite Edit-Tool-Truncation in S09:** Beim zweiten Edit-Tool-Aufruf in dieser Session auf `cv.md` (TÜV-Zeile + Promotion-Zeile) hat das Tool die Datei still am Ende gekürzt; die Schluss-Zeile „Dissertation, fünf Veröffentlichungen, ein Patent, eine Erfindungsmeldung" wurde mitten im Wort abgeschnitten. Symptom identisch zum S08-Vorfall mit derselben Datei. Reparatur identisch zum S08-Pattern: git HEAD-Version als Input, alle 7 Link-Änderungen in einem Python-Script atomar via `os.replace` zurückgeschrieben, mit `count(old) == 1`-Eindeutigkeits-Check pro Replacement. **Lehre: Für `cv.md` das Edit-Tool nicht mehr verwenden, stattdessen Python-aus-git-Pattern.** Wandert beim Session-Abschluss in `agent-prompt.md`.
**Build und visuelle Bestätigung durch Thomas (S09):** `build.ps1` ausgeführt; alle Links in DOCX und PDF wie gewünscht klickbar. TÜV-Klick zeigt erwartungsgemäß die Word-Fehlermeldung — der Display-Text warnt den Empfänger vorab, manuelles Copy-Paste in den Browser funktioniert.
## Nächste Schritte
1. **Iteration C — Foto-Einbindung:** Portraitfoto in `source/cv.md` einbetten (Pandoc-Image-Syntax), Position und Größe im Template absichern (z.B. oben rechts neben Name, ca. 3 cm).