Public/ConvertTo-JiraADF.ps1

function ConvertTo-JiraADF {
    <#
    .SYNOPSIS
        Wandelt Text oder Markdown in ein Atlassian Document Format (ADF) Dokument um.
        Jira Cloud v3 erwartet für Felder wie "description" oder Kommentar-"body" ADF statt reinem Text/HTML.
    .PARAMETER InputText
        Der umzuwandelnde Text. Im Plain-Text-Modus wird jede Zeile zu einem eigenen Absatz.
    .PARAMETER Markdown
        Behandelt InputText als Markdown: Überschriften (#), Tabellen (| ... |),
        Listen (- / 1.) und Inline-Formatierung (**fett**, *kursiv*, `code`, [Text](URL))
        werden in ADF umgewandelt.
    .EXAMPLE
        ConvertTo-JiraADF -InputText "Erste Zeile`nZweite Zeile"
    .EXAMPLE
        $md = "## Überschrift`n`n| Feld | Wert |`n|---|---|`n| Status | OK |"
        ConvertTo-JiraADF -InputText $md -Markdown
    #>

    [CmdletBinding(DefaultParameterSetName = 'PlainText')]
    param (
        [Parameter(Mandatory = $true, ValueFromPipeline = $true)]
        [AllowEmptyString()]
        [string]
        $InputText,

        [Parameter(Mandatory = $false, ParameterSetName = 'Markdown')]
        [switch]
        $Markdown
    )

    process {
        if ($Markdown) {
            $AdfContent = Convert-JiraMarkdownToADF -Markdown $InputText
            return @{
                type    = 'doc'
                version = 1
                content = $AdfContent
            }
        }
        else {
            $Lines = $InputText -split "`r?`n"
            $Paragraphs = foreach ($Line in $Lines) {
                if ([string]::IsNullOrEmpty($Line)) {
                    @{ type = 'paragraph'; content = @() }
                }
                else {
                    @{ type = 'paragraph'; content = @(@{ type = 'text'; text = $Line }) }
                }
            }
            return @{
                type    = 'doc'
                version = 1
                content = @($Paragraphs)
            }
        }
    }
}