Internal/Merge-HtmlFragment.ps1

<#
.SYNOPSIS
Merge all fragments. It indents LibItems by a last line in previous html fragment.
 
.PARAMETER Fragments
[HtmlFragment] and [LibItem]
#>

function Merge-HtmlFragment {
    [CmdletBinding()]
    [OutputType([String])]
    Param (
        [Parameter(Position = 0, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
        [HtmlFragment[]]$Fragments
    )

    begin {
        $Html = [System.Text.StringBuilder]::new()
        $IdentStr = ''
    }

    process {
        foreach ($Fragment in $Fragments) {
            if ($Fragment) {
                [void]$Html.Append($Fragment.Text($IdentStr))
                $IdentStr = $Fragment.LastLineIndent($IdentStr)
            }
        }
    }

    end {
        $Html.ToString()
    }
}