Markdown erweiterte Syntax: Tabellen, Fußnoten, Aufgabenlisten und mehr
Die Markdown erweiterte Syntax umfasst die Formatierungselemente, die nach der Veröffentlichung der Originalspezifikation durch John Gruber im Jahr 2004 hinzugekommen sind. Die Spezifikation von 2004 definierte 11 Grundelemente und ließ Tabellen, Fußnoten, Aufgabenlisten und durchgestrichenen Text komplett aus. Spätere Projekte schlossen diese Lücken: MultiMarkdown brachte 2005 Tabellen und Fußnoten, Pandoc erschien 2006 mit dem größten Erweiterungssatz aller Prozessoren, CommonMark standardisierte 2014 den Kern mit Raum für Erweiterungen, und GitHub veröffentlichte 2017 die GFM-Spezifikation. Jedes Element auf dieser Seite wird in der Live-Vorschau des Editors gerendert, sodass Ihnen ein Einfügen von 5 Sekunden zeigt, ob Ihre Ziel-App es unterstützt.
Support-Matrix
Keine Anwendung unterstützt alle 12 erweiterten Elemente, prüfen Sie also vor der Veröffentlichung die Unterstützung für Ihr Ziel. Die 4 häufigsten Ziele unterscheiden sich deutlich:
| Element | GitHub | Obsidian | Discord | Pandoc |
|---|---|---|---|---|
| Tabellen | Ja | Ja | Nein | Ja |
| Abgegrenzte Codeblöcke | Ja | Ja | Ja | Ja |
| Fußnoten | Ja | Ja | Nein | Ja |
| Überschriften-IDs | Nur automatisch | Teilweise | Nein | Ja |
| Definitionslisten | Nein | Nein | Nein | Ja |
| Durchgestrichener Text | Ja | Ja | Ja | Ja |
| Aufgabenlisten | Ja | Ja | Nein | Ja |
| Emoji-Shortcodes | Ja | Plugin | Ja | Erweiterung |
| Hervorhebung | Nein | Ja | Nein | Erweiterung |
| Tief- und Hochstellung | Nur HTML | Nur HTML | Nein | Ja |
| Automatische URL-Links | Ja | Ja | Ja | Erweiterung |
Eine praktische Abkürzung: Tabellen, abgegrenzte Codeblöcke, durchgestrichener Text und Aufgabenlisten werden fast überall gerendert. Definitionslisten, Hervorhebung, Tiefstellung und Hochstellung sind die 4 Elemente, die am ehesten scheitern.
Tabellen
Eine Markdown Tabelle trennt Spalten mit senkrechten Strichen und markiert die Kopfzeile mit einer Trennlinie aus 3 oder mehr Bindestrichen. Die äußeren Striche sind in den meisten Parsern optional, verbessern aber die Kompatibilität, behalten Sie sie also bei.
| Feature | Status |
| :------ | -----: |
| Export | Done |
| Sync | Open |
Doppelpunkte in der Trennzeile steuern die Ausrichtung. :--- richtet eine Spalte links aus, :---: zentriert sie und ---: schiebt sie nach rechts. Der Parser wendet die Ausrichtung auf jede Zelle der Spalte an. Die Anzahl der Bindestriche muss nicht in allen Spalten übereinstimmen. Um einen senkrechten Strich als Zeichen in einer Zelle auszugeben, schreiben Sie die HTML-Entität |; GitHub akzeptiert auch das Backslash-Escape \|. Zellen nehmen Inline-Formatierung wie Fettdruck und Code-Spans an, aber niemals Blockelemente wie Listen oder Überschriften.
MultiMarkdown führte die Syntax 2005 ein, und GFM übernahm sie 2017. GitHub, GitLab, Obsidian und Pandoc rendern Markdown-Tabellen. Discord nicht.
Abgegrenzte Codeblöcke
Ein abgegrenzter Codeblock beginnt und endet mit 3 Backticks und braucht keine Einrückung, anders als die Codeblöcke mit 4 Leerzeichen aus der Spezifikation von 2004. Drei Tilden funktionieren in den meisten Parsern als alternative Begrenzung.
```python
def total(items):
return sum(items)
```
Eine Sprachkennung direkt hinter der öffnenden Begrenzung schaltet die Syntaxhervorhebung ein. highlight.js, die Bibliothek hinter vielen Web-Renderern, liefert Definitionen für etwa 200 Sprachen, und gängige Kennungen sind python, js, json, bash und sql. Um einen Codeblock innerhalb eines anderen Codeblocks anzuzeigen, machen Sie die äußere Begrenzung 4 Backticks lang.
Die Unterstützung ist die breiteste aller erweiterten Elemente. GitHub, Obsidian, Discord und Pandoc rendern abgegrenzte Blöcke, und alle 4 wenden die Sprachhervorhebung an.
Fußnoten
Eine Markdown Fußnote besteht aus 2 Teilen: einer Referenzmarke im Fließtext, geschrieben als [^1], und einer Definition an beliebiger Stelle in der Datei, geschrieben als [^1]: gefolgt von der Anmerkung. Der Renderer sammelt alle Definitionen am Seitenende und verknüpft jedes Paar in beide Richtungen.
The claim has a published source.[^1]
[^1]: Smith, 2024, p. 41.
Bezeichner können Wörter ebenso wie Zahlen sein, und [^note] verhält sich exakt wie [^1], weil die Nummerierung in der Ausgabe der Dokumentreihenfolge folgt und nicht der Beschriftung. Eine Fußnote fasst mehrere Absätze, wenn die zusätzlichen Absätze 4 Leerzeichen eingerückt unter der Definition stehen.
MultiMarkdown lieferte Fußnoten 2005 aus, Pandoc und Obsidian unterstützen sie vollständig, und GitHub ergänzte das Fußnoten-Rendering 2021. Discord hat keine Fußnotenunterstützung.
Überschriften-IDs
Eine benutzerdefinierte Überschriften-ID steht in geschweiften Klammern am Ende der Überschriftenzeile, und ## Refund Policy {#refunds} erzeugt das HTML-Element h2 mit id="refunds". Die ID wird zu einem stabilen Anker für Links und CSS.
## Refund Policy {#refunds}
Jump straight to [the refund policy](#refunds).
Der Link ist ein normaler Markdown-Link mit einer Raute und der ID als Ziel. Externe Seiten erreichen dieselbe Stelle, wenn #refunds an die vollständige Seiten-URL angehängt wird.
Pandoc und PHP Markdown Extra parsen die Form mit geschweiften Klammern. GitHub ignoriert sie, erzeugt aber automatische IDs aus dem Überschriftentext, sodass ein Link auf #refund-policy dort trotzdem funktioniert. Obsidian nutzt sein eigenes Muster [[Note#Heading]] für Überschriften-Links. Discord rendert Überschriften in Nachrichten, hat aber kein Ankersystem.
Definitionslisten
Eine Definitionsliste verbindet einen Begriff mit 1 oder mehr Definitionen: Der Begriff steht allein in einer Zeile, und jede Definition beginnt in der nächsten Zeile mit einem Doppelpunkt und einem Leerzeichen.
Markdown
: A plain-text formatting syntax released in 2004.
Parser
: Software that converts markdown into HTML.
: Also called a processor.
Die Ausgabe ist ein echtes <dl>-Element mit <dt>- und <dd>-Kindern, was für Glossare und für Screenreader zählt. Gestapelte Doppelpunktzeilen geben einem einzelnen Begriff mehrere Definitionen.
Die Unterstützung ist schmal. PHP Markdown Extra definierte die Syntax, und Pandoc wie MultiMarkdown parsen sie beide. GitHub und Obsidian geben die Doppelpunktzeilen als reinen Text aus, und Discord macht dasselbe. Rohes <dl>-HTML ist auf GitHub der verlässliche Ausweg.
Durchgestrichener Text
Durchgestrichener Text umschließt den Text mit 2 Tilden auf jeder Seite, sodass like this als durchgestrichener Text gerendert wird. Das Element stammt aus GFM, und die HTML-Ausgabe ist ein <del>-Element.
~~Ship v2 on Friday.~~ Moved to Monday.
GitHub akzeptiert auch eine einzelne Tilde pro Seite. Bleiben Sie für die Portabilität bei 2, denn einzelne Tilden bedeuten in Pandoc Tiefstellung, und ein Unterschied von 1 Zeichen kehrt die Bedeutung um.
Die Unterstützung ist nahezu universell. GitHub, Obsidian, Discord und Pandoc rendern den durchgestrichenen Text mit 2 Tilden.
Aufgabenlisten
Ein Eintrag einer Markdown Aufgabenliste beginnt wie ein normaler Listeneintrag und ergänzt eckige Klammern: - [ ] markiert eine offene Aufgabe und - [x] eine erledigte. Das Leerzeichen in den leeren Klammern ist Pflicht.
- [x] Draft the outline
- [x] Write the copy
- [ ] Publish the page
GitHub führte die Syntax 2013 ein und machte die Kontrollkästchen in Issues und Pull Requests interaktiv, wo ein Klick das zugrunde liegende Markdown aktualisiert. GitHub zählt sie auch, sodass ein Issue einen Fortschritt wie "2 of 3 tasks" meldet. Obsidian rendert in der Leseansicht klickbare Kontrollkästchen, und Pandoc wandelt Aufgabenlisten in HTML-Kontrollkästchen um. Discord lässt die Klammern als getippte Zeichen stehen.
Emojis
Emojis gelangen auf 2 Wegen in eine Markdown-Datei: Fügen Sie das Unicode-Zeichen direkt ein, oder tippen Sie einen Shortcode wie :rocket: in Anwendungen, die Shortcodes auflösen. Eingefügte Emojis überleben in jeder UTF-8-Datei, sodass 🎯 auch dort angezeigt wird, wo Shortcodes scheitern.
Release day :tada: went live at 9 am.
Ein Shortcode umschließt einen Emoji-Namen mit 2 Doppelpunkten. GitHub löst rund 1.800 Shortcodes auf, und Discord löst seinen eigenen Satz plus benutzerdefinierte Server-Emojis auf. Obsidian braucht für Shortcodes ein Community-Plugin, zeigt eingefügte Emojis aber nativ an, und Pandoc löst Shortcodes nur mit eingeschalteter Emoji-Erweiterung auf. Die Namen unterscheiden sich zwischen den Plattformen, ein Shortcode, der auf GitHub funktioniert, ist also nirgendwo sonst garantiert.
Hervorhebung
Die Hervorhebung umschließt den Text mit 2 Gleichheitszeichen, und ==like this== wird mit einem Textmarker-Hintergrund gerendert, meist gelb. Die HTML-Ausgabe ist ein <mark>-Element.
The deadline moved to ==14 March== at noon.
Dies ist eines der am wenigsten portablen erweiterten Elemente. Obsidian rendert es standardmäßig, und Pandoc parst es mit aktivierter mark-Erweiterung, verfügbar seit Pandoc 3.0 im Jahr 2023. GitHub und Discord geben die Gleichheitszeichen wörtlich aus. Wo die Syntax scheitert, funktioniert das <mark>-Tag in jedem Renderer, der HTML durchlässt, was GitHub-Readme-Dateien einschließt.
Tiefstellung und Hochstellung
Die Tiefstellung umschließt Zeichen mit einzelnen Tilden, wie in H2O, und die Hochstellung mit einzelnen Zirkumflexzeichen, wie in x^2^. Beide Formen stammen aus dem Erweiterungssatz von Pandoc und nicht aus einer verbreiteten Web-Variante.
H~2~O freezes at 0 degrees.
E = mc^2^ dates from 1905.
Pandoc wandelt sie in <sub>- und <sup>-Elemente um. GitHub und Obsidian ignorieren die Tilde- und Zirkumflex-Formen, lassen die HTML-Tags aber durch, sodass H2O auf beiden funktioniert. Discord unterstützt keines von beiden. Achten Sie auf die Tilden-Kollision: Eine App mit Einzeltilden-Durchstreichung streicht Ihre Tiefstellung durch, statt sie abzusenken.
Automatische URL-Verlinkung
Die automatische URL-Verlinkung macht aus einer nackten Adresse wie https://example.com einen klickbaren Link, ganz ohne Klammersyntax. GFM formalisierte das Verhalten als Autolink-Erweiterung in seiner Spezifikation von 2017.
Full docs at https://example.com/docs
GitHub und Discord verlinken nackte URLs, und Obsidian tut dasselbe in der Leseansicht. Pandoc lässt das Verhalten ausgeschaltet, solange die Erweiterung autolink_bare_uris nicht aktiviert ist. Um zu verhindern, dass eine URL zum Link wird, umschließen Sie sie mit Backticks; Code-Spans verlinken niemals, sodass https://example.com in Konfigurationsbeispielen und Platzhalter-Domains reiner Text bleibt.
Häufig gestellte Fragen
Ist die erweiterte Syntax Teil des offiziellen Markdown?
Nein. Die Spezifikation von 2004 definiert 11 Grundelemente, und jedes Element auf dieser Seite stammt aus späteren Varianten und Prozessoren. Markdown hat kein Standardisierungsgremium, weshalb sich die Unterstützung von Anwendung zu Anwendung unterscheidet.
Welche Markdown-Variante unterstützt die meiste erweiterte Syntax?
Pandoc unterstützt das breiteste Spektrum, mit mehr als 30 optionalen Syntaxerweiterungen, und es parst alle 12 Elemente auf dieser Seite. GFM ist das praktischere Ziel für die Web-Veröffentlichung, weil GitHub, GitLab und die meisten modernen Editoren ihm folgen.
Warum wird eine Tabelle auf GitHub gerendert, aber nicht in Discord?
Discord implementiert eine schmale Markdown-Teilmenge für den Chat und lässt Tabellen, Fußnoten, Aufgabenlisten und Definitionslisten weg. Seine Teilmenge deckt Fettdruck, Kursivschrift, durchgestrichenen Text, Überschriften und abgegrenzte Codeblöcke ab. Inhalte für Discord sollten bei diesen 5 Elementen bleiben.
Wie teste ich erweiterte Syntax vor der Veröffentlichung?
Fügen Sie das Element in die Live-Vorschau des Online-Editors ein, die GFM plus Fußnoten in unter 1 Sekunde rendert. Für jedes andere Ziel fügen Sie eine Probe von 2 Zeilen in die Ziel-App selbst ein; die Support-Matrix deckt die 4 häufigsten Fälle ab.
