Public/ConvertTo-MarkdownFormattedText.ps1
Function ConvertTo-MarkdownFormattedText { <# .SYNOPSIS Converts strings to Markdown formatted text. .DESCRIPTION Converts strings to Markdown formatted text by inserting the proper syntax at the beginning and end of the string. .PARAMETER String The text to convert. .PARAMETER Italic Italicizes text. .PARAMETER Bold Bolds text. .PARAMETER Underlined Underlines text. .PARAMETER Strikethrough Strikes a line through text. .PARAMETER Subscript Converts text to subscript. .PARAMETER Superscript Converts text to superscript. .EXAMPLE "Test","Test2" | ConvertTo-MarkDownFormattedText -Italic -Bold -Underlined -Strikethrough .EXAMPLE Get-Content -Raw C:\Path\To\Project\Document.txt | ConvertTo-MarkDownFormattedText -Italic -Bold -Underlined #> [CmdletBinding(DefaultParameterSetName="__AllParameterSets")] PARAM ( [Parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true)] [ValidateNotNullOrEmpty()] [String[]]$String, [Parameter(Mandatory=$false)] [Switch]$Italic, [Parameter(Mandatory=$false)] [Switch]$Bold, [Parameter(Mandatory=$false)] [Switch]$Strikethrough, [Parameter(Mandatory=$false)] [Switch]$Underlined, [Parameter(Mandatory=$false, ParameterSetName="Subscript")] [Switch]$Subscript, [Parameter(Mandatory=$false, ParameterSetName="Superscript")] [Switch]$Superscript ) #region BEGIN Block BEGIN { # Locally scope ErrorActionPreference for predictable behavior of Try/Catch blocks inside the function $ErrorActionPreference = 'Stop' # Create output variable $Results = [System.Collections.ArrayList]::new() } #endregion BEGIN Block #region PROCESS Block PROCESS { FOREACH ($Entry in $String) { # Declare variables $SyntaxStart = '' $SyntaxEnd = '' # Insert Syntax if is Italic specified IF ($Italic) { $SyntaxStart = "*$SyntaxStart" $SyntaxEnd = "$SyntaxEnd*" } # Insert Syntax if is Bold specified IF ($Bold) { $SyntaxStart = "**$SyntaxStart" $SyntaxEnd = "$SyntaxEnd**" } # Insert Syntax if Strikethrough is specified IF ($Strikethrough) { $SyntaxStart = "~~$SyntaxStart" $SyntaxEnd = "$SyntaxEnd~~" } # Insert Syntax if Underlined is specified IF ($Underlined) { $SyntaxStart = "<u>$SyntaxStart" $SyntaxEnd = "$SyntaxEnd</u>" } # Insert Syntax if Subscript is specified IF ($Subscript) { $SyntaxStart = "<sub>$SyntaxStart" $SyntaxEnd = "$SyntaxEnd</sub>" } # Insert Syntax if Superscript is specified IF ($Superscript) { $SyntaxStart = "<sup>$SyntaxStart" $SyntaxEnd = "$SyntaxEnd</sup>" } # Insert Markdown syntax into $Entry $Entry = "$SyntaxStart$Entry$SyntaxEnd" # Add to results $Results.Add($Entry) | Out-Null } } #endregion PROCESS Block #region END Block END { Return $Results } #endregion END Block } |