From 823331955bc8219f5b2f192a59b583af45f2490b5298931f3f0f6511a9f40bd2 Mon Sep 17 00:00:00 2001 From: tlg Date: Sat, 25 Apr 2026 12:05:52 +0200 Subject: [PATCH] S05: build.ps1 repariert: Die zuvor eingebaute Write-Both-Hilfsfunktion und em-Dashes in Code-Strings hatten zu einem stillen Frueh-Abbruch unter Windows PowerShell 5.1 gefuehrt. Neue Version verwendet stattdessen direkte Write-Host/Write-Log-Paare an den Fortschrittsstellen, ASCII-only in Code-Strings, strukturell nah an der initial funktionierenden Version. Konsolenausgabe mit farbigen Statuszeilen pro Build-Phase ist jetzt sichtbar, Pandoc-Detail-Output bleibt im Log. --- .checkpoint-pending.txt | 2 +- artefakte/01-lebenslauf/build/build.ps1 | 72 +++++++++--------- .../Lebenslauf_Dr-Ing_Thomas_Langer.docx | Bin 19707 -> 19707 bytes .../Lebenslauf_Dr-Ing_Thomas_Langer.pdf | 4 +- artefakte/01-lebenslauf/output/build.log | 6 +- changelog.md | 1 + 6 files changed, 41 insertions(+), 44 deletions(-) diff --git a/.checkpoint-pending.txt b/.checkpoint-pending.txt index 93027fd..0415388 100644 --- a/.checkpoint-pending.txt +++ b/.checkpoint-pending.txt @@ -1,2 +1,2 @@ S05 -build.ps1 erweitert um sichtbaren Fortschritt im PowerShell-Fenster (farbige Statuszeilen für Build-Phasen, Pandoc-Detail-Output bleibt nur im Log). Notes-Block aktualisiert (System-Fonts statt plex-otf-Paket). Teilgebiet 25 ergänzt um Doku der system-weiten Installation IBM Plex Sans v1.1.0, IBM Plex Mono v1.1.0 und IBM Plex Serif v1.1.0 (Release 2024-11-13, OTF, alle Benutzer) mit Quelle und Anlass; Offene-Punkte-Abschnitt entsprechend nachgezogen. Erster vollständiger Build des CV (PDF und DOCX) auf Thomas' MiKTeX-System lief erfolgreich durch. +build.ps1 repariert: Die zuvor eingebaute Write-Both-Hilfsfunktion und em-Dashes in Code-Strings hatten zu einem stillen Frueh-Abbruch unter Windows PowerShell 5.1 gefuehrt. Neue Version verwendet stattdessen direkte Write-Host/Write-Log-Paare an den Fortschrittsstellen, ASCII-only in Code-Strings, strukturell nah an der initial funktionierenden Version. Konsolenausgabe mit farbigen Statuszeilen pro Build-Phase ist jetzt sichtbar, Pandoc-Detail-Output bleibt im Log. diff --git a/artefakte/01-lebenslauf/build/build.ps1 b/artefakte/01-lebenslauf/build/build.ps1 index 9154683..1e65291 100644 --- a/artefakte/01-lebenslauf/build/build.ps1 +++ b/artefakte/01-lebenslauf/build/build.ps1 @@ -7,17 +7,15 @@ Deterministischer Build ohne GUI oder Komfortfunktionen. - PDF via Pandoc + LuaLaTeX, nutzt templates/template.tex - DOCX via Pandoc, nutzt templates/reference.docx - - Log in output/build.log (überschrieben pro Build) - - Fortschrittsausgaben werden zusätzlich in der Konsole angezeigt + - Log in output/build.log (ueberschrieben pro Build) + - Fortschritt wird zusaetzlich in der Konsole angezeigt - Exit-Code 0 = beide Ausgaben erfolgreich, 1 = ein oder beide Schritte fehlgeschlagen .NOTES Voraussetzungen auf dem System: - Pandoc (im PATH) - - MiKTeX mit LuaLaTeX und den Paketen fontspec, microtype, polyglossia, - geometry, xcolor, hyperref, graphicx, enumitem, titlesec, fancyhdr, - lastpage, xurl. - - System-Fonts: IBM Plex Sans, IBM Plex Mono (für Windows installiert). + - MiKTeX mit LuaLaTeX + - System-Fonts: IBM Plex Sans und IBM Plex Mono fuer Windows installiert MiKTeX mit "Install missing packages on the fly: Yes" zieht fehlende LaTeX-Pakete beim ersten Lauf automatisch. #> @@ -42,27 +40,18 @@ if (-not (Test-Path $outputDir)) { New-Item -ItemType Directory -Path $outputDir -Force | Out-Null } -# --- Log initialisieren (UTF-8 ohne BOM) -------------------------------------- +# --- Log initialisieren (UTF-8 ohne BOM) ------------------------------------- $utf8NoBom = New-Object System.Text.UTF8Encoding $false -[System.IO.File]::WriteAllText($logFile, '', $utf8NoBom) - -# Schreibt nur in die Log-Datei (für Pandoc-Ausgaben und Detail-Zeilen) function Write-Log { param([string]$Line) [System.IO.File]::AppendAllText($logFile, $Line + [Environment]::NewLine, $utf8NoBom) } +[System.IO.File]::WriteAllText($logFile, '', $utf8NoBom) -# Schreibt auf Konsole UND in die Log-Datei (für Fortschritts-Meilensteine) -function Write-Both { - param( - [string]$Line, - [string]$Color = 'Gray' - ) - Write-Host $Line -ForegroundColor $Color - Write-Log $Line -} - -Write-Both ("===== Build gestartet: {0} =====" -f (Get-Date -Format 'yyyy-MM-dd HH:mm:ss')) 'Cyan' +$startTs = Get-Date -Format 'yyyy-MM-dd HH:mm:ss' +Write-Host "" +Write-Host "===== Build gestartet: $startTs =====" -ForegroundColor Cyan +Write-Log "===== Build gestartet: $startTs =====" Write-Log "Source: $sourceFile" Write-Log "Template-TEX: $templateTex" Write-Log "Reference: $referenceDoc" @@ -71,21 +60,24 @@ Write-Log '' $overallExit = 0 -# --- Pflichtdateien prüfen ---------------------------------------------------- +# --- Pflichtdateien pruefen -------------------------------------------------- foreach ($f in @($sourceFile, $templateTex, $referenceDoc)) { if (-not (Test-Path $f)) { - Write-Both "FEHLER: Pflichtdatei fehlt: $f" 'Red' + Write-Host "FEHLER: Pflichtdatei fehlt: $f" -ForegroundColor Red + Write-Log "FEHLER: Pflichtdatei fehlt: $f" $overallExit = 1 } } if ($overallExit -ne 0) { - Write-Both '===== Abbruch: Pflichtdateien fehlen =====' 'Red' + Write-Host "===== Abbruch: Pflichtdateien fehlen =====" -ForegroundColor Red + Write-Log "===== Abbruch: Pflichtdateien fehlen =====" exit $overallExit } -# --- PDF-Build ---------------------------------------------------------------- -Write-Both '' 'Gray' -Write-Both '[1/2] PDF wird erzeugt (Pandoc + LuaLaTeX) ...' 'Yellow' +# --- PDF-Build --------------------------------------------------------------- +Write-Host "" +Write-Host "[1/2] PDF wird erzeugt (Pandoc + LuaLaTeX) ..." -ForegroundColor Yellow +Write-Log "--- Pandoc -> PDF (LuaLaTeX) ---" $pdfArgs = @( '--from=markdown+smart', '--pdf-engine=lualatex', @@ -100,15 +92,18 @@ $pdfExit = $LASTEXITCODE $pdfOutput | ForEach-Object { Write-Log ([string]$_) } if ($pdfExit -eq 0 -and (Test-Path $outputPdf)) { $sizeKB = [math]::Round((Get-Item $outputPdf).Length / 1KB, 1) - Write-Both " PDF OK ($sizeKB KB): $outputPdf" 'Green' + Write-Host " PDF OK ($sizeKB KB): $outputPdf" -ForegroundColor Green + Write-Log "PDF OK: $outputPdf ($sizeKB KB)" } else { - Write-Both " PDF FEHLER (Exit $pdfExit) — Details siehe build.log" 'Red' + Write-Host " PDF FEHLER (Exit $pdfExit) - Details siehe build.log" -ForegroundColor Red + Write-Log "PDF FEHLER (Exit $pdfExit)" $overallExit = 1 } -# --- DOCX-Build --------------------------------------------------------------- -Write-Both '' 'Gray' -Write-Both '[2/2] DOCX wird erzeugt (Pandoc) ...' 'Yellow' +# --- DOCX-Build -------------------------------------------------------------- +Write-Host "" +Write-Host "[2/2] DOCX wird erzeugt (Pandoc) ..." -ForegroundColor Yellow +Write-Log "--- Pandoc -> DOCX ---" $docxArgs = @( '--from=markdown+smart', "--reference-doc=$referenceDoc", @@ -122,18 +117,21 @@ $docxExit = $LASTEXITCODE $docxOutput | ForEach-Object { Write-Log ([string]$_) } if ($docxExit -eq 0 -and (Test-Path $outputDocx)) { $sizeKB = [math]::Round((Get-Item $outputDocx).Length / 1KB, 1) - Write-Both " DOCX OK ($sizeKB KB): $outputDocx" 'Green' + Write-Host " DOCX OK ($sizeKB KB): $outputDocx" -ForegroundColor Green + Write-Log "DOCX OK: $outputDocx ($sizeKB KB)" } else { - Write-Both " DOCX FEHLER (Exit $docxExit) — Details siehe build.log" 'Red' + Write-Host " DOCX FEHLER (Exit $docxExit) - Details siehe build.log" -ForegroundColor Red + Write-Log "DOCX FEHLER (Exit $docxExit)" $overallExit = 1 } -Write-Both '' 'Gray' $endTs = Get-Date -Format 'yyyy-MM-dd HH:mm:ss' +Write-Host "" if ($overallExit -eq 0) { - Write-Both "===== Build beendet: $endTs, Exit-Code $overallExit (OK) =====" 'Cyan' + Write-Host "===== Build beendet: $endTs, Exit-Code $overallExit (OK) =====" -ForegroundColor Cyan } else { - Write-Both "===== Build beendet: $endTs, Exit-Code $overallExit (FEHLER) =====" 'Red' + Write-Host "===== Build beendet: $endTs, Exit-Code $overallExit (FEHLER) =====" -ForegroundColor Red } +Write-Log "===== Build beendet: $endTs, Exit-Code $overallExit =====" exit $overallExit diff --git a/artefakte/01-lebenslauf/output/Lebenslauf_Dr-Ing_Thomas_Langer.docx b/artefakte/01-lebenslauf/output/Lebenslauf_Dr-Ing_Thomas_Langer.docx index f01a142167ef5b2b504ed104395ce70d7ba71348330c2e03b5b23c8bc0a80902..8e39fd7e891761807b7b1654d8fb3008d1bd9b86e53492e3c887d0d13565b30a 100644 GIT binary patch delta 442 zcmex8lkxXVMxFp~W)=|!CJqjUncf?DHZd~I^xk}ckq=B?V3N@Q@!x6LfcTSjbe4g* zS9Cm>K(w5`KL?1;H+KOm-)h0e$T8DPIKTWZ&HEehjk51SLUGH7Mg*R-45 z5l8GdZRg!n>l@@WamUwZU(eLd+ZwCSzwGQjMVGg4nx?QSOGdn$vh6l&W%T+_mXT&# zzr^ff&_7tou|hFzarvadRQ@0_nJ-uQagqS;@rP1(Oh{=EPC$qTIH zydU1!xgaTM-KzVYZ2Bv7R3AFO+x*F{vLa@^NASk1X`6TNnYHew?fPdmr|kTX$9#=% zP_upM_P@D;ji+;cz4K>gO_$;%cIj^^HA-38ttvo>$^_F@D8UHQ6i delta 442 zcmex8lkxXVMxFp~W)=|!CJqh;7mtlRn;4l~JT@O-on;{I z6&(*I5G|+g&jF(I&0WCCw_30g*=* z4IT9<`O+1?XR$a<-0}6<*E4nVw#MpzTXwci!R76nIa64bB_m!=**4pK4)m~Y=@%64nv%g%MvVX~Z{qy;g7g))8 zKe(`SK~m7VRhM0w#Y3h|`k?qd^5+a2yS3Antc)-{dowof?)n=&o4YpOy#8^<>VMo9 zmZ-> endobj 173 0 obj -<< /Author(\376\377\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Title(\376\377\000L\000e\000b\000e\000n\000s\000l\000a\000u\000f\000\040\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Subject()/Creator(\376\377\000P\000a\000n\000d\000o\000c\000\040\000+\000\040\000L\000u\000a\000L\000a\000T\000e\000X)/Keywords() /Producer (LuaTeX-1.24.0) /CreationDate (D:20260425110206+02'00') /ModDate (D:20260425110206+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.24.0 (MiKTeX 26.2)) >> +<< /Author(\376\377\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Title(\376\377\000L\000e\000b\000e\000n\000s\000l\000a\000u\000f\000\040\000D\000r\000.\000-\000I\000n\000g\000.\000\040\000T\000h\000o\000m\000a\000s\000\040\000L\000a\000n\000g\000e\000r)/Subject()/Creator(\376\377\000P\000a\000n\000d\000o\000c\000\040\000+\000\040\000L\000u\000a\000L\000a\000T\000e\000X)/Keywords() /Producer (LuaTeX-1.24.0) /CreationDate (D:20260425112847+02'00') /ModDate (D:20260425112847+02'00') /Trapped /False /PTEX.FullBanner (This is LuaHBTeX, Version 1.24.0 (MiKTeX 26.2)) >> endobj xref 0 174 @@ -910,7 +910,7 @@ xref 0000065855 00000 n 0000065983 00000 n trailer -<< /Size 174 /Root 172 0 R /Info 173 0 R /ID [ <80BBECCACAE00C07116B3E5C01A01D27> <80BBECCACAE00C07116B3E5C01A01D27> ] >> +<< /Size 174 /Root 172 0 R /Info 173 0 R /ID [ <38C1C249BFFBED281C973A0E1B4E89BD> <38C1C249BFFBED281C973A0E1B4E89BD> ] >> startxref 66643 %%EOF diff --git a/artefakte/01-lebenslauf/output/build.log b/artefakte/01-lebenslauf/output/build.log index 159c190..4bf1054 100644 --- a/artefakte/01-lebenslauf/output/build.log +++ b/artefakte/01-lebenslauf/output/build.log @@ -1,4 +1,4 @@ -===== Build gestartet: 2026-04-25 10:59:38 ===== +===== Build gestartet: 2026-04-25 11:28:43 ===== Source: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md Template-TEX: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\template.tex Reference: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\reference.docx @@ -317,9 +317,7 @@ Cmd: pandoc --from=markdown+smart --pdf-engine=lualatex --template=Q:\DesTEngS\P [WARNING] Missing character: There is no Ôùï (U+25CB) (U+25CB) in font "name:IBM Plex Sans:mode=nod [WARNING] Missing character: There is no Ôùï (U+25CB) (U+25CB) in font "name:IBM Plex Sans:mode=nod PDF OK: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.pdf (68.6 KB) - --- Pandoc -> DOCX --- Cmd: pandoc --from=markdown+smart --reference-doc=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\templates\reference.docx --resource-path=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source --output=Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\source\cv.md DOCX OK: Q:\DesTEngS\Pro\Git\marketing\claude_cowork\artefakte\01-lebenslauf\output\Lebenslauf_Dr-Ing_Thomas_Langer.docx (19.2 KB) - -===== Build beendet: 2026-04-25 11:02:09, Exit-Code 0 ===== +===== Build beendet: 2026-04-25 11:28:50, Exit-Code 0 ===== diff --git a/changelog.md b/changelog.md index c813cbb..8436409 100644 --- a/changelog.md +++ b/changelog.md @@ -33,3 +33,4 @@ Chronologisches Log aller Entscheidungen und Prozessereignisse. 2026-04-24 14:20 | S05 | Teilgebiet 25 DesTEngS-Typographie-Refresh neu angelegt (Priorität niedrig, keine Abhängigkeiten) mit Begründung der Schriftentscheidung zu IBM Plex Sans als neue Dokumenten-Hausschrift; DesTEngS-Logo bleibt unverändert. Status von Teilgebiet 01 Lebenslauf-Optimierung im Index auf in Bearbeitung gesetzt. Artefakt-Ordner artefakte/25-typographie-refresh/ angelegt. 2026-04-24 21:46 | S05 | Teilgebiet 01 CV-Pipeline auf Pandoc/LuaLaTeX umgestellt: Ordner artefakte/01-lebenslauf neu gegliedert in source, templates, build, output, entwuerfe und archiv. Draft-Marker aus cv.md entfernt, Foto umbenannt ohne Sonderzeichen. Erste Template-Version template.tex geschrieben mit IBM Plex Sans, microtype, deutscher Sprachumgebung, Kopfzeile ab Seite 2, strikter Widow/Orphan-Kontrolle. Pandoc-Default reference.docx als Ausgangsbasis erzeugt. PowerShell-Build-Skript build.ps1 fertig mit Log und Exit-Code-Handling. DOCX-Build in Sandbox erfolgreich verifiziert, PDF-Build ist auf Thomas' MiKTeX-System zu testen. teilgebiete/01-lebenslauf.md um Wendepunkt, Entscheidungen, nächste Schritte und neue Artefakt-Liste aktualisiert. 2026-04-25 11:11 | S05 | build.ps1 erweitert um sichtbaren Fortschritt im PowerShell-Fenster (farbige Statuszeilen für Build-Phasen, Pandoc-Detail-Output bleibt nur im Log). Notes-Block aktualisiert (System-Fonts statt plex-otf-Paket). Teilgebiet 25 ergänzt um Doku der system-weiten Installation IBM Plex Sans v1.1.0, IBM Plex Mono v1.1.0 und IBM Plex Serif v1.1.0 (Release 2024-11-13, OTF, alle Benutzer) mit Quelle und Anlass; Offene-Punkte-Abschnitt entsprechend nachgezogen. Erster vollständiger Build des CV (PDF und DOCX) auf Thomas' MiKTeX-System lief erfolgreich durch. +2026-04-25 12:05 | S05 | build.ps1 repariert: Die zuvor eingebaute Write-Both-Hilfsfunktion und em-Dashes in Code-Strings hatten zu einem stillen Frueh-Abbruch unter Windows PowerShell 5.1 gefuehrt. Neue Version verwendet stattdessen direkte Write-Host/Write-Log-Paare an den Fortschrittsstellen, ASCII-only in Code-Strings, strukturell nah an der initial funktionierenden Version. Konsolenausgabe mit farbigen Statuszeilen pro Build-Phase ist jetzt sichtbar, Pandoc-Detail-Output bleibt im Log.