Wie man Markdown in Confluence, Jira oder Slack einfügt

Alle drei haben ein eigenes Markup, und keines davon ist Markdown — deshalb kommt eine eingefügte .md-Datei mit sichtbaren Sternchen an.

Markdown für Confluence umwandeln

Markdown in Jira-Wiki-Markup, Markdown in Slack-mrkdwn

Warum es schiefgeht

Confluence speichert eine Seite als XHTML mit eigenen Makros, Jiras älteres Markup schreibt Fettdruck als `*ein Sternchen*` und eine Überschrift als `h2.`, und Slacks mrkdwn kennt weder Überschriften noch Tabellen. Markdown, das als Text in eines davon eingefügt wird, wird als deren Markup gelesen oder gar nicht: doppelte Sternchen, Rautezeichen am Zeilenanfang, eine Tabelle aus senkrechten Strichen.

In einen Editor: das Dokument einfügen, nicht das Markup

Confluence Cloud, Jira Cloud und Slacks Nachrichtenfeld sind Rich-Text-Editoren, und ein solcher Editor behält eine Formatierung, die formatiert ankommt. Kopiert man das gerenderte Dokument statt seiner Quelle, überstehen Überschriften, Listen, Links, Tabellen und Codeblöcke das Einfügen.

„Für Confluence kopieren“, „Für Jira kopieren“ und „Für Slack kopieren“ legen beide Fassungen zugleich in die Zwischenablage: Ein Editor nimmt die formatierte, ein reines Textfeld das Markup.

In alles, was kein Editor ist: das Markup

Eine Seite, die ein Skript, eine Pipeline oder ein API-Aufruf schreibt, braucht das eigene Format der Plattform. Bei Confluence ist das das Speicherformat, `body.storage` der REST-API — dort wird ein umzäunter Block zum Code-Makro und `> [!WARNING]` zum Warnungsbereich. Bei Jira ist es Wiki-Markup, das der Textmodus von Data Center, Version 2 der REST-API und Automatisierungsregeln lesen. Bei Slack ist es mrkdwn: der `text` eines `chat.postMessage`-Aufrufs, eines eingehenden Webhooks oder eines Block-Kit-Abschnitts.

Was nicht hinüberkommt

Manches aus Markdown hat kein Ziel. Slack kennt keine Tabellen, also wird eine Tabelle zum Codeblock mit aufgefüllten Spalten. Keines der drei zeichnet ein Mermaid-Diagramm oder setzt eine Formel, also kommen beide als Quelltext in einem Codeblock an. Ein im Dokument eingebettetes Bild müsste erst hochgeladen werden, bevor eines davon es zeigen kann, darum steht dort seine Beschreibung; ein Bild mit Webadresse bleibt ein Bild.