Private/TerminalTextBoundary.ps1
|
$script:TerminalSlidesStrictUtf8 = [Text.UTF8Encoding]::new($false, $true) function Assert-TerminalValidUtf16 { param([Parameter(Mandatory)][AllowEmptyString()][string]$Value) try { [void]$script:TerminalSlidesStrictUtf8.GetByteCount($Value) } catch [Text.EncoderFallbackException] { throw 'TerminalSlides text requires valid UTF-16.' } } function ConvertTo-TerminalLfText { param([Parameter(Mandatory)][AllowEmptyString()][string]$Value) Assert-TerminalValidUtf16 -Value $Value return $Value.Replace("`r`n", "`n").Replace("`r", "`n") } function ConvertTo-TerminalHtmlEncodedText { param([AllowNull()][object]$Value) $text = [string]$Value Assert-TerminalValidUtf16 -Value $text return [Net.WebUtility]::HtmlEncode($text) } |