John MacFarlane hat einen Rückblick auf zwanzig Jahre pandoc veröffentlicht. Die erste Version, am 3. August 2006 unter der GPL freigegeben, umfasste rund 3.000 Zeilen Haskell ohne weitere Abhängigkeiten außer der GHC-Standardbibliothek und konvertierte zwischen Markdown, reStructuredText, HTML und LaTeX sowie nach RTF und S5.
Die Entstehungsgeschichte ist erfreulich zufällig: MacFarlane, Philosoph von Beruf, wollte Haskell lernen, nachdem er darüber im Blog von Greg Restall gelesen hatte, und wählte einen Markdown-Parser als Übungsprojekt. Anders als die regex-basierten Markdown-Implementierungen der Zeit (in Perl, Python, Ruby und PHP) erzeugte pandoc über Parser-Kombinatoren einen echten abstrakten Syntaxbaum, was N Reader mal M Writer ermöglichte. Frühe Meilensteine: das Debian-Paket von Recai Oktaş, der Umzug zu Hackage 2007 und pandoc 1.0 im September 2008 mit MediaWiki-, Texinfo-, OpenDocument- und ODT-Writern, fenced Code Blocks mit Syntax-Highlighting und CSL-basierter Zitaterzeugung.
Wichtige Architekturschritte folgten: das Template-System in 1.4 (2010), der Umzug von Google Code zu GitHub 2010, docx-Ausgabe in 1.9 (2012), Lua-Custom-Writer, YAML-Metadatenblöcke und JSON-Filter 2013 sowie commonmark-Unterstützung in 1.14 (2015) — geboren aus der gescheiterten „Standard Markdown“-Arbeitsgruppe, der John Gruber widersprach, woraufhin die Umbenennung erfolgte. Pandoc 2.0 (2017) brachte die PandocMonad-Abstraktion, die Readern und Writern I/O erlaubt, sowie eingebettete Lua-Filter, die Albert Krewinkel auf Basis von hslua baute. Eine Spende von 100.000 Dollar von Handshake im Jahr 2018 finanzierte fünf Jahre lang Maintainer-Stipendien.
Pandoc 3.0 (2023) teilte den Monolithen in pandoc, pandoc-lua-engine, pandoc-server und pandoc-cli auf. Später kamen ein Typst-Reader (der einen vollständigen Sprachinterpreter erforderte), das Markup-Format djot und mit pandoc 3.9 (Februar 2026) die Kompilierung zu WASM hinzu, wodurch pandoc im Browser läuft.
Statistik: pandoc unterstützt inzwischen 51 Eingabe- und 76 Ausgabeformate — 3.876 verschiedene Konvertierungen. Die vier Kernpakete umfassen 85.684 Zeilen Haskell, bei Einbezug pandoc-spezifischer Abhängigkeiten etwa doppelt so viele. Über 600 Personen haben beigetragen; 7.346 GitHub-Issues wurden gelöst. MacFarlane führt die Machbarkeit eines solchen Nebenprojekts auf Haskells algebraische Datentypen, starkes Typsystem und Reinheit zurück.
Ausblick: LLMs konvertierten Dokumentformate schon heute passabel und könnten deterministische Konverter eines Tages übertreffen — doch pandoc habe vorerst Vorteile: deutlich geringerer Energieverbrauch, deterministische Ausgabe und höhere Zuverlässigkeit. Er sei stolz auf ein Projekt, das Nutzern weltweit unzählige Stunden mühsamer Arbeit erspart habe.
Kommentare
Noch keine Kommentare — schreib den ersten.
Starte die Diskussion
Kein Konto, kein Passwort nötig — gib einfach deine E-Mail-Adresse ein, wir senden dir einen einmaligen Anmelde-Link. Beim ersten Mal bist du damit automatisch angemeldet.
Deine Bewertung wird nach der Anmeldung automatisch übernommen.
Schau in dein Postfach
Wir haben einen Anmelde-Link an … gesendet. Öffne ihn auf diesem Gerät — dieser Tab meldet dich automatisch an.
Warte auf deinen Klick …
·