src/Private/Core/ConvertTo-FotonObservationHtml.ps1

function ConvertTo-FotonObservationHtml {
    <#
        Renders a finding Observation. ConvertTo-FotonSample joins items with ' ; ',
        which wrapped badly inside an inline span. Lead sentence stays a paragraph;
        sampled paths/commands become a list.
    #>

    param([string]$Text)
    $safe = ConvertTo-FotonSafeHtml $Text
    $marker = 'Sample: '
    $pos = $safe.IndexOf($marker)
    $lead = ''
    $items = @()
    if ($pos -ge 0) {
        $lead = $safe.Substring(0, $pos).Trim()
        $rest = $safe.Substring($pos + $marker.Length)
        $items = @($rest -split ' ; ' | ForEach-Object { $_.Trim() } | Where-Object { $_ })
    }
    elseif ($safe.Contains(' ; ')) {
        $items = @($safe -split ' ; ' | ForEach-Object { $_.Trim() } | Where-Object { $_ })
    }
    else {
        return "<div class=""obs""><p class=""obs-lead"">$safe</p></div>"
    }
    $html = '<div class="obs">'
    if ($lead) {
        $html += "<p class=""obs-lead"">$lead</p>"
    }
    $html += '<ul class="obs-list">'
    foreach ($item in $items) {
        $html += "<li>$item</li>"
    }
    $html += '</ul></div>'
    return $html
}