Public/Test-TerminalPresentation.ps1
|
function Test-TerminalPresentation { [CmdletBinding()] param( [Parameter(Mandatory)][TerminalSlides.Schema.V1.TerminalPresentation]$Presentation, [string[]]$Viewport = @('80x24', '120x35', '160x45') ) $view = New-TerminalPresentationView -Presentation $Presentation $results = foreach ($viewportSize in $Viewport) { if ($viewportSize -notmatch '^(\d+)x(\d+)$') { Write-Warning "Viewport '$viewportSize' is invalid." continue } $capability = [TerminalSlides.Schema.V1.TerminalCapability]::new() $capability.Width = [int]$matches[1] $capability.Height = [int]$matches[2] $capability.AnsiSupport = $true $capability.Interactive = $false for ($index = 0; $index -lt $view.Slides.Count; $index++) { $plan = Get-TerminalSlideLayoutPlan -Presentation $view -SlideIndex $index -Capability $capability [pscustomobject]@{ Viewport = $viewportSize Slide = $index + 1 Fits = ($plan.OverflowLines -eq 0) OverflowLines = $plan.OverflowLines } } } foreach ($item in $results | Where-Object { -not $_.Fits }) { Write-Warning "Slide $($item.Slide) exceeds viewport $($item.Viewport)." } return $results } |