param( [Parameter(Mandatory = $false, Position = 0)] [string]$RelativePath = ".", [Parameter(Mandatory = $false)] [switch]$Recurse ) $scriptDir = $PSScriptRoot $cfgFile = Join-Path $scriptDir 'mermaid-config.json' $targetDir = Join-Path $scriptDir $RelativePath if (-not (Test-Path $targetDir)) { Write-Error "Der Zielordner '$targetDir' existiert nicht." exit 1 } $mmdFiles = Get-ChildItem -Path $targetDir -Filter '*.mmd' -Recurse:$Recurse if ($mmdFiles.Count -eq 0) { Write-Host "Keine .mmd-Dateien in '$targetDir' gefunden." -ForegroundColor Yellow exit 0 } Write-Host "Verarbeite Ordner: $targetDir (Rekursiv: $Recurse)" -ForegroundColor Yellow # --- 1. DATEIEN AUFLISTEN --- Write-Host "`nFolgende $($mmdFiles.Count) Datei(en) werden verarbeitet:" -ForegroundColor Yellow foreach ($file in $mmdFiles) { # Zeigt den relativen Pfad ab dem Zielordner für bessere Lesbarkeit $relativePath = Resolve-Path -Path $file.FullName -RelativeBasePath $targetDir Write-Host " - $relativePath" -ForegroundColor Gray } Write-Host "" # --- 2. NUTZERABFRAGE --- $response = Read-Host "Möchtest du diese Dateien konvertieren? Bereits vorhandene Bild-Dateien werden überschrieben (J/N)" # Prüft, ob der Nutzer mit 'j' oder 'ja' geantwortet hat (case-insensitive) if ($response -notmatch '^[jJ](a)?$') { Write-Host "Vorgang vom Benutzer abgebrochen." -ForegroundColor Red exit 0 } Write-Host "`nStarte Konvertierung..." -ForegroundColor Green # --- 3. KONVERTIERUNGSDURCHLAUF --- foreach ($file in $mmdFiles) { Write-Host "Konvertiere $($file.Name) ($($file.DirectoryName))..." -ForegroundColor Cyan $destSvg = Join-Path $file.DirectoryName "$($file.BaseName).svg" $destPng = Join-Path $file.DirectoryName "$($file.BaseName).png" if (Test-Path $cfgFile) { mmdc -i $file.FullName -o $destSvg -c $cfgFile } else { mmdc -i $file.FullName -o $destSvg } mmdc -i $file.FullName -o $destPng -s 3 } Write-Host "Fertig! Alle Diagramme wurden konvertiert." -ForegroundColor Green