S07: Iteration B3 und B3.5 fuer Teilgebiet 01 abgeschlossen. B3 in build/build-reference-docx.py ergaenzt: DocDefault widowControl plus keepNext und keepLines auf Heading 1/2/3 und FirstParagraph (Pandoc-Stil fuer ersten Absatz nach einem Heading, deckt die fett formatierten Kenntnisse-Subsection-Labels KI Software-Design Methodik IT etc ab). Erster Versuch Compact-Stil mit keepNext hat Listen komplett unteilbar gemacht (Job-Stationen begannen jedes Mal auf einer neuen Seite, ungenutzte Seitenenden) und wurde verworfen. Auf Wunsch von Thomas auf 3-3-Regel umgestellt: bei Listen mit mindestens 6 Bullets duerfen Trennungen passieren, aber mindestens 3 Bullets bleiben jeweils zusammen vor und nach dem Umbruch. Bei kuerzeren Listen alles zusammen. Da das stilbasiert nicht abbildbar ist (alle Bullets haben pStyle Compact), neues Post-Processing-Skript build/post-process-docx.py: scannt das fertige DOCX, findet Sequenzen aufeinanderfolgender Bullets mit numPr-Eigenschaft ausserhalb von Tabellen-Zellen, setzt keepNext auf den ersten 2 und den N-3 N-2 Bullets jeder Liste mit n groesser gleich 6 (bei n kleiner 6 alle keepNext). build.ps1 erweitert auf 3 Schritte und ruft das Post-Processing-Skript automatisch nach erfolgreichem DOCX-Build auf, mit Console-Output und Log-Statistiken (Anzahl Listen Bullets keepNext-Markierungen). Sandbox-Verifikation 26 Listen 184 Bullets 93 keepNext, Pattern fuer 11-Bullet-Liste KK......KK.. Auf Thomas System visuell bestaetigt: Listen werden an guten Stellen getrennt, keine ungenutzten Seitenenden, keine einzelnen Bullets allein am Seitenrand. teilgebiete/01-lebenslauf.md um B3- und B3.5-Bloecke ergaenzt sowie Naechste-Schritte-Liste auf B4 C D umstrukturiert. agent-prompt.md Aktueller-Stand-Abschnitt fortgeschrieben mit B3 und B3.5, Hinweis auf 3-stufige DOCX-Pipeline und Edit-Tool-Truncation an build.ps1 ergaenzt. Naechste Session startet mit B4 (Heading-Farben oder Trennlinien analog PDF).
This commit is contained in:
@@ -7,17 +7,24 @@
|
||||
Deterministischer Build ohne GUI oder Komfortfunktionen.
|
||||
- PDF via Pandoc + LuaLaTeX, nutzt templates/template.tex
|
||||
- DOCX via Pandoc, nutzt templates/reference.docx
|
||||
- DOCX-Post-Processing via build/post-process-docx.py
|
||||
(Listen-Bullet-Schutz nach 3-3-Regel)
|
||||
- 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
|
||||
- Exit-Code 0 = alle Schritte erfolgreich, 1 = mindestens ein Fehler
|
||||
|
||||
.NOTES
|
||||
Voraussetzungen auf dem System:
|
||||
- Pandoc (im PATH)
|
||||
- MiKTeX mit LuaLaTeX
|
||||
- Python 3 (im PATH) fuer Post-Processing
|
||||
- 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.
|
||||
|
||||
Hinweis: templates/reference.docx wird NICHT bei jedem Build neu gebaut.
|
||||
Bei Stiländerungen vorher manuell `python build/build-reference-docx.py`
|
||||
aufrufen.
|
||||
#>
|
||||
|
||||
$ErrorActionPreference = 'Continue'
|
||||
@@ -77,7 +84,7 @@ if ($overallExit -ne 0) {
|
||||
|
||||
# --- PDF-Build ---------------------------------------------------------------
|
||||
Write-Host ""
|
||||
Write-Host "[1/2] PDF wird erzeugt (Pandoc + LuaLaTeX) ..." -ForegroundColor Yellow
|
||||
Write-Host "[1/3] PDF wird erzeugt (Pandoc + LuaLaTeX) ..." -ForegroundColor Yellow
|
||||
Write-Log "--- Pandoc -> PDF (LuaLaTeX) ---"
|
||||
$pdfArgs = @(
|
||||
'--from=markdown+smart',
|
||||
@@ -99,13 +106,12 @@ if ($pdfExit -eq 0 -and (Test-Path $outputPdf)) {
|
||||
Write-Host " PDF FEHLER (Exit $pdfExit) - Details siehe build.log" -ForegroundColor Red
|
||||
Write-Log "PDF FEHLER (Exit $pdfExit)"
|
||||
$overallExit = 1
|
||||
# Kurz pausieren, damit die rote Fehlerzeile lesbar bleibt, falls das Fenster danach zugeht
|
||||
Start-Sleep -Seconds 3
|
||||
}
|
||||
|
||||
# --- DOCX-Build --------------------------------------------------------------
|
||||
Write-Host ""
|
||||
Write-Host "[2/2] DOCX wird erzeugt (Pandoc) ..." -ForegroundColor Yellow
|
||||
Write-Host "[2/3] DOCX wird erzeugt (Pandoc) ..." -ForegroundColor Yellow
|
||||
Write-Log "--- Pandoc -> DOCX ---"
|
||||
$docxArgs = @(
|
||||
'--from=markdown+smart',
|
||||
@@ -122,11 +128,33 @@ if ($docxExit -eq 0 -and (Test-Path $outputDocx)) {
|
||||
$sizeKB = [math]::Round((Get-Item $outputDocx).Length / 1KB, 1)
|
||||
Write-Host " DOCX OK ($sizeKB KB): $outputDocx" -ForegroundColor Green
|
||||
Write-Log "DOCX OK: $outputDocx ($sizeKB KB)"
|
||||
|
||||
# --- Post-Processing: Listen-Bullet-Schutz (3-3-Regel) ------------------
|
||||
Write-Host ""
|
||||
Write-Host "[3/3] DOCX-Post-Processing (Listen-Bullet-Schutz) ..." -ForegroundColor Yellow
|
||||
Write-Log "--- Post-Process DOCX ---"
|
||||
$postScript = Join-Path $scriptDir 'post-process-docx.py'
|
||||
if (Test-Path $postScript) {
|
||||
$ppOutput = & python $postScript 2>&1
|
||||
$ppExit = $LASTEXITCODE
|
||||
$ppOutput | ForEach-Object {
|
||||
Write-Log ([string]$_)
|
||||
Write-Host " $_"
|
||||
}
|
||||
if ($ppExit -ne 0) {
|
||||
Write-Host " POST-PROCESS FEHLER (Exit $ppExit)" -ForegroundColor Red
|
||||
Write-Log "POST-PROCESS FEHLER (Exit $ppExit)"
|
||||
$overallExit = 1
|
||||
Start-Sleep -Seconds 3
|
||||
}
|
||||
} else {
|
||||
Write-Host " Hinweis: $postScript nicht vorhanden, uebersprungen" -ForegroundColor Yellow
|
||||
Write-Log "Hinweis: post-process-docx.py nicht vorhanden, uebersprungen"
|
||||
}
|
||||
} else {
|
||||
Write-Host " DOCX FEHLER (Exit $docxExit) - Details siehe build.log" -ForegroundColor Red
|
||||
Write-Log "DOCX FEHLER (Exit $docxExit)"
|
||||
$overallExit = 1
|
||||
# Kurz pausieren, damit die rote Fehlerzeile lesbar bleibt, falls das Fenster danach zugeht
|
||||
Start-Sleep -Seconds 3
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user