Pandoc Logo

Pandoc feiert 20-jähriges Jubiläum

Pandoc feierte gestern seinen 20. Geburtstag. Der Entwickler John MacFarlane nahm dies zum Anlass, die komplette Geschichte des Projekts aufzuschreiben. Wir stellen mit Pandoc ein veritables Stück Software und seinen Werdegang vor.

Was ist Pandoc?

Bei Pandoc handelt es sich um einen universellen Dokumentkonverter, der zwischen einer Vielzahl von Auszeichnungssprachen und Dateiformaten übersetzen kann. Dazu zählen etwa Markdown, LaTeX, HTML, Word DOCX, EPUB oder ODT. Statt für jede Kombination einen eigenen Konverter zu schreiben, zerlegt Pandoc ein Dokument zunächst in eine interne Baumstruktur und rendert daraus dann das Zielformat.

Vom Übungsprojekt zum Standardwerkzeug

Wie MacFarlane in seinem Rückblick erzählt, stand am Anfang gar nicht der Wunsch, einen Dokumentenkonverter zu bauen. Er entschied sich zunächst für die Programmiersprache Haskell und erst danach dafür, damit einen Dokumentenkonverter zu schreiben, nicht umgekehrt. Der Berkeley-Philosophieprofessor wollte die Sprache einfach nur lernen und suchte sich dafür ein Übungsprojekt: einen Markdown-Parser. Anders als die damals üblichen Perl-, Python-, Ruby- und PHP-Implementierungen, die Markdown über eine Kette von Regex-Ersetzungen direkt in HTML umwandelten, entschied er sich für Parser-Kombinatoren und eine echte Baumstruktur als Zwischenschritt.

2006 erschien Pandoc 0.1

Am 3. August 2006 veröffentlichte MacFarlane die erste Version auf seiner eigenen Website, unter GPL-Lizenz. Pandoc 0.1 bestand aus rund 3000 Zeilen Haskell-Code und konnte Markdown, reStructuredText, HTML und LaTeX ineinander sowie zusätzlich in RTF oder S5 umwandeln. Beworben hat er das Projekt kaum, lediglich zwei Freunde bekamen eine E-Mail. Trotzdem fand es schnell Nutzer, und noch im selben Jahr meldete sich ein Entwickler, der Pandoc für Debian paketieren wollte. Das war der Beginn der Distributions-Integration, die heute viele Pandoc-Projekte in fast allen Distributionen umfasst. Allein in Debian gibt es dafür sieben zugehörige Pakete, ausgehend vom Kernpaket über pandoc-data bis zu einzelnen Filtern wie pandoc-citeproc oder pandoc-plantuml-filter.

Stetige Entwicklung

Die folgenden Jahre brachten stetiges Wachstum: 2008 erschien Pandoc 1.0 mit Unterstützung für MediaWiki, ODT und Syntax-Highlighting, 2010 zog das Projekt von Google Code zu GitHub um, was die Sichtbarkeit deutlich erhöhte. 2012 kam die Word-DOCX-Ausgabe hinzu, 2013 folgten Markdown-Erweiterungen, YAML-Metadatenblöcke, Lua-Writer und JSON-Filter – Grundlagen, die bis heute die Erweiterbarkeit von Pandoc ausmachen.

Parallel dazu war MacFarlane an einer Arbeitsgruppe beteiligt, die eine eindeutige Markdown-Spezifikation erarbeiten sollte. Als sich die Gruppe 2013 zerstritt, schrieb er die Spezifikation kurzerhand selbst fertig. Daraus entstand 2014 das Projekt CommonMark, nachdem John Gruber, der Erfinder von Markdown, dem ursprünglich geplanten Namen »Standard Markdown« widersprochen hatte.

2017 folgte mit Pandoc 2.0 ein größerer Architekturumbau, unter anderem mit Lua-Filtern, die direkt auf dem internen Dokumentbaum arbeiten und deutlich performanter sind als die bisherigen JSON-Filter. 2018 erhielt das Projekt eine Spende von 100.000 US-Dollar, mit der über fünf Jahre kleine Stipendien an die aktivsten Mitwirkenden ausgezahlt wurden.

Mit Pandoc 3.0 wurde 2023 das inzwischen recht monolithische Projekt in vier Teile zerlegt: die eigentliche Haskell-Bibliothek, die Lua-Integration, den Pandoc-Server und das Kommandozeilenwerkzeug. Letzteres kann seither optional ganz ohne Server- und Lua-Unterstützung gebaut werden. Es folgten unter anderem Unterstützung für Typst, für MacFarlanes eigene Markdown-Alternative Djot sowie Anfang 2026 eine WASM-Kompilierung, mit der Pandoc jetzt vollständig im Browser läuft.

Zahlen und Fakten

Aktuell unterstützt Pandoc 51 Eingabe- und 76 Ausgabeformate, was 3876 unterschiedliche Konvertierungsrichtungen ergibt. Die vier Kernpakete umfassen laut MacFarlane rund 85.700 Zeilen Haskell-Code, über 600 Menschen haben in 20 Jahren beigetragen, mehr als 7300 Issues auf GitHub wurden gelöst. MacFarlane selbst ist mit weitem Abstand größter Beitragender, gefolgt von Albert Krewinkel und Jesse Rosenthal, die beide seit 2014 dabei sind.

Pandoc oder LLM?

MacFarlane räumt offen ein, dass LLMs inzwischen brauchbare Formatkonvertierungen leisten können, sieht aber weiterhin klare Vorteile für ein Werkzeug wie Pandoc, wie etwa geringeren Energieverbrauch und vor allem deterministische, vorhersagbare Ergebnisse. Ob das auf Dauer reichen wird, lässt er bewusst offen.

Teilt den Beitrag, falls ihr mögt

Kommentar hinterlassen