Warum Markdown nicht ganz richtig ist
Di, 11. Oktober 2022, Ralf Hersel
Alle lieben Markdown, weil es minimalistisch und universell ist. Wer braucht schon eine hochgezüchtete und over-engineerte Auszeichnungssprache wie docx oder odt? In der Kürze liegt die Würze, die unsere Zeit spart und leicht erlernbar ist. Doch Achtung, manches ist nicht so, wie es scheint.
Wir haben bei GNU/Linux.ch sehr oft die vereinfachte Auszeichnungssprache, die von John Gruber und Aaron Swartz im Dezember 2004 entworfen wurde, gelobt und für leicht formatierte Dokumente empfohlen. Diese Empfehlung gilt auch weiterhin. Wie so oft liegt die Tücke im Detail. Dieser Artikel erklärt, warum das so ist.
Gruber schrieb den ersten Markdown-zu-HTML-Konverter in Perl, der bald auf vielen Websites eingesetzt wurde. Bis 2014 gab es Dutzende von Implementierungen in vielen Sprachen. In der Beschreibung der Markdown-Syntax von John Gruber ist die Syntax nicht eindeutig festgelegt. Aufgrund der fehlenden Spezifikation basierten frühe Implementierungen auf dem ursprünglichen Pearl-Code (markdown.pl), um diese Unklarheiten zu beseitigen. Markdown.pl war jedoch ziemlich fehlerhaft und lieferte in vielen Fällen offensichtlich schlechte Ergebnisse, sodass es keinen zufriedenstellenden Ersatz für eine Spezifikation darstellte. Markdown.pl wurde zuletzt am 17. Dezember 2004 aktualisiert.
Da es keine eindeutige Spezifikation gibt, haben sich die Implementierungen in den letzten 10 Jahren stark auseinanderentwickelt. Infolgedessen sind die Benutzer oft überrascht, dass ein Dokument, das auf einem System (z. B. einem GitHub-Wiki) auf die eine Weise dargestellt wird, auf einem anderen System (z. B. bei der Konvertierung in Docbook mit Pandoc) anders dargestellt wird. Erschwerend kommt hinzu, dass in Markdown nichts als Syntaxfehler gilt und die Abweichung oft nicht sofort entdeckt wird.
Um diesen Missstand zu beheben, zielt das Projekt Commonmark.org auf die Erstellung einer standardisierten, eindeutigen Syntax-Spezifikation für Markdown ab. Commonmark.org bietet:
- Die Spezifikation
- Eine Referenzimplementierung
- Eine Diskussionsgruppe
- Eine Schnell-Referenz und interaktive Übungen
- Ein Test-Werkzeug, basierend auf der Referenzimplementierung
Quelle: https://commonmark.org/