# Generate both HTML and PDF outputs for one Markdown file. param( [string]$file = $(throw "File is required."), [Parameter(ValueFromRemainingArguments = $true)] [string[]]$RemainingArgs = @() ) $DebugPreference = "Continue" $ErrorActionPreference = "Stop" # file exists? if (-not (Test-Path $file)) { Write-Error "File not found: $file" exit 1 } $file = (Resolve-Path $file).Path $resourcePath = [System.IO.Path]::GetDirectoryName($file) $needsAgentResults = Select-String -LiteralPath $file -SimpleMatch "include-agent-challenge-results" -Quiet if ($needsAgentResults) { $evaluationGenerator = Join-Path $PSScriptRoot "generate_agent_challenge_evaluation.py" & uv run python $evaluationGenerator if ($LASTEXITCODE -ne 0) { throw "agent challenge evaluation generation failed with exit code $LASTEXITCODE" } } # name without extension function Get-OutputFilenames([string] $file, [string] $type) { $parentdir = [System.IO.Path]::GetDirectoryName($file) if (-not $parentdir) { $parentdir = '.' } $filename = [System.IO.Path]::GetFileNameWithoutExtension($file) $newfilename = "${filename}.${type}" return Join-Path $parentdir $newfilename } Write-Host "Generating HTML and PDF for $file..." Write-Debug "Remaining args: $($RemainingArgs | Format-List)" & $PSScriptRoot\generate.ps1 -type html -- -i $file -o (Get-OutputFilenames $file "html") --resource-path $resourcePath @RemainingArgs & $PSScriptRoot\generate.ps1 -type pdf -- -i $file -o (Get-OutputFilenames $file "pdf") --resource-path $resourcePath @RemainingArgs