Prof. Dr. Detlef Stern

Markdown (leider)

Eigentlich ist Markdown ein wunderbares Textformat, mit dem viel Inhalt erstellt wird. Ursprünglich entwickelt, um nicht viel HTML schreiben zu müssen, ist es für viele Autoren ein wichtiges Werkzeug geworden. Mit wenigen Zeichen lassen sich Überschriften, Aufzählungen, Links, Zitate und viel mehr einbinden. Damit lassen sich leicht Webseiten erstellen, aber auch eBooks, die nichts anderes als Webseiten sind.

„Eigentlich“ ist ein gefährliches Wort, nicht nur im Projektmanagement.

Problematisch an Markdown ist, dass es das eine Markdown gar nicht gibt. Hmm, doch das eine Markdown gibt es durchaus, aber es gibt so viele Kopien, die sich ebenfalls „Markdown“ nennen, aber vom ursprünglichen Markdown mehr oder minder abweichen. Das liegt an der beschränkten, nicht vollständigen, leicht inkonsistenten Definition dieses Textformats.

Die ursprüngliche Implementierung von Markdown wurde in der Sprache Perl implementiert und zuletzt vor 15 Jahren, im Jahr 2004, geändert. Es ist kein Wunder, dass es in jeder anderen, relevanten Programmiersprache mindestens zwei alternative Implementierungen gibt, die sich wenigstens subtil vom Original unterscheiden. Oder anders formuliert: je nachdem welche Implementierung man wählt, sieht die erstellte Webseite anders aus.

Standardisierung hilft?

Leider nicht. Mit CommonMark wurde versucht, Mehrdeutigkeiten zu vermeiden. Das ist vom Inhalt her vermutlich gelungen. Damit hätte man einen präzisen Standard für das eine Markdown. Nur, es hält sich kaum jemand daran. De facto hat man nur einen weiteren Markdown-Dialekt geschaffen.

Das Problem von Markdown sind für viele weniger die subtilen Unterschiede zwischen den Markdown-Dialekten, sondern vielmehr deren Einschränkungen.

Markdown wurde geschaffen, um weniger mit HTML verwenden zu müssen. Nebenbei, der Name „Markdown“ bezieht sich direkt auf HTML, dass „HyperText Markup Language“ bedeutet. Viele Autoren wollen aber nicht weniger HTML nutzen, sie wollen lieber gar kein HTML nutzen. Zum einen ist HTML nicht immer einfach zu nutzen und zu verstehen, zum anderen möchten viele ihre Inhalte für etwas anderes als Webseiten formulieren, zum Beispiel für auf Papier gedruckte Bücher. Nicht nur dafür entstanden Erweiterungen von Markdown, um Tabellen, Fußnoten oder Graphiken im Textformat formulieren zu können.

Hervorzuheben ist hier die Software Pandoc mit dessen Hilfe nicht nur aus Markdown viele Dokumentenarten erstellt werden können. Ich selbst nutze Pandoc, um meine Vorlesungsunterlagen zu erzeugen. Mit Hilfe einiger selbst programmierter Hilfsprogramme formulieren ich meine Vorlesungsinhalte mit Hilfe eines erweiterten Markdown-Dialekts und lassen diese durch Pandoc sowohl als PDF-Dokumente, wie als Web-basierte Präsentationen generieren. Darin enthalten sind automatisch erzeugte Literaturverzeichnisse. Mit Pandoc lassen sich zusätzlich gut eBooks realisieren. Aktuell bin ich von Pandoc stark abhängig.

Und nun?

Die Situation rund um Markdown ist nicht besonders berauschend. Man kann sich auf die Möglichkeiten des ursprünglichen Markdowns aus dem Jahre 2004 beschränken. Hiermit lassen sich relativ unproblematisch textlastige Webseiten publizieren, allen subtilen Unterschieden zum Trotz. Diese Texte können langfristig archiviert und von anderer Software bearbeitet werden. Zur Not bleibt einem immer das entsprechende HTML-Dokument. Dieses Blog ist ein Beispiel für diese Strategie.

Man kann sich von einer Software wie Pandoc abhängig machen, die einem viele Möglichkeiten bietet und hoffentlich lange erhalten bleibt. Jetzt kann ich aber Texte nicht langfristig archivieren oder mit anderer Software leicht bearbeiten lassen. Blog-Software, die eine Art Markdown als Eingabe erlaubt, fällt ebenso in diese Kategorie, wie Editoren, die einen Markdown-Dialekt interpretieren können. Bei einem Wechsel der Software muss man die Textdaten selbst in ein neues Format migrieren, sofern HTML nicht ausreicht.

Oder man nutzt ein eigenes Format und programmiert sich seine Software selbst. Dann hat man alles in der Hand, sogar die Migration in andere Formate. Wenn das kein Argument ist, Programmieren zu lernen. Allerdings muss man dann auch vieles selbst machen, diese Strategie ist der mühseligste Weg. Für meine Implementation eines Zettelkastens werde ich diesen Weg beschreiten. Um schneller zu Ergebnissen zu kommen nutze ich temporär Pandoc.

Fazit

Dieser Post soll alle warnen, sich unüberlegt auf das Format „Markdown“ einzulassen. Es ist weder im engeren Sinne standardisiert noch für viele Anwendungsbereiche zukunftssicher. Die meisten Implementierungen von Markdown setzen nicht das ursprüngliche Markdown um, sondern erweitern es für eigene Bedürfnisse. Solange man sich bewusst von diesen Erweiterungen abhängig macht, spricht natürlich nichts gegen die Nutzung. Jeder hat seine Laster.