public/Write-EscapedMarkdownString.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
$escapeValues = @{ '\' = '\\' '`' = '\`' '*' = '\*' '_' = '\_' '{' = '\{' '}' = '\}' '[' = '\[' ']' = '\]' '(' = '\(' ')' = '\)' '#' = '\#' '+' = '\+' '!' = '\!' '.' = '\.' } function Write-EscapedMarkdownString() { Param( [Parameter(Position = 0)] [String] $Value ) if([string]::IsNullOrWhiteSpace($Value)) { return ''; } foreach($test in $escapeValues.Keys) { $Value = $Value.Replace($test, $escapeValues[$test]) } $lines = $Value -Split "`n" $sb = New-Object System.Text.StringBuilder for($i =0 ; $i -lt $lines.Length; $i++) { $sb.Append($lines[$i].Trim()) | Out-Null $sb.Append("`n") | Out-Null } return $sb.ToString().Trim("`n") } |