Public/New-MarkDownBreak.ps1

Function New-MarkDownBreak
{
    <#
        .SYNOPSIS
        Outputs Markdown text break syntax.
 
        .DESCRIPTION
        Outputs Markdown text break syntax.
 
        .PARAMETER Type
        The type of syntax to output.
 
        .EXAMPLE
        New-MarkDownBreak | Out-File "C:\Path\To\My\File.md" -Encoding "ASCII" -Append
 
        .EXAMPLE
        (New-MarkDownBreak) * 3 | Out-File "C:\Path\To\My\File.md" -Encoding "ASCII" -Append
 
        .EXAMPLE
        New-MarkDownBreak -Type PageBreak | Out-File "C:\Path\To\My\File.md" -Encoding "ASCII" -Append
 
        .EXAMPLE
        New-MarkDownBreak -Type HorizontalRule | Out-File "C:\Path\To\My\File.md" -Encoding "ASCII" -Append
 
    #>


    [CmdletBinding()]
    PARAM
    (
        [Parameter(Mandatory=$false, Position=0)]
        [ValidateSet("LineBreak","PageBreak","HorizontalRule")]
        [String]$Type = "LineBreak"
    )

    #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
    {
        # Declare variables
        $Results = SWITCH ($Type)
        {
            LineBreak
            {
                '<br>'
            }
            HorizontalRule
            {
                "_____________________________________________________________________________________________________________________________________`r`n"
            }
            PageBreak
            {
@"
<div style="page-break-before:always">&nbsp;</div>
"@

            }
        }
    }
    #endregion PROCESS Block

    #region END Block
    END
    {
        Return $Results
    }
    #endregion END Block
}