Pandoc cumple veinte años: la historia de un conversor de documentos que empezó como excusa para aprender Haskell

Fuentes: Twenty years of pandoc: how a Haskell side project became the universal document converter

El 3 de agosto de 2006, John MacFarlane publicó la primera versión de Pandoc, un conversor de documentos escrito en Haskell bajo licencia GPL. La versión 0.1 constaba de unas 3.000 líneas de código y únicamente transformaba entre Markdown, reStructuredText, HTML y LaTeX, además de generar RTF y S5. Lo que nació como un proyecto para procrastination y práctica con un lenguaje funcional se convirtió, veinte años después, en más de doscientas versiones, soporte para más de cincuenta formatos, generación automática de citas y bibliografías, e integración en herramientas académicas como Quarto y Jupyter Notebook. Se calcula que está instalado en millones de equipos.

MacFarlane eligió Haskell porque un amigo filósofo, Greg Restall, había descrito el lenguaje como una revelación. Aprendió a programar leyendo 'A Gentle Introduction to Haskell' y decidió escribir un parser de Markdown con la biblioteca parsec. Frente a las implementaciones en Perl, Python, Ruby y PHP, que usaban expresiones regulares, Pandoc introdujo un árbol de sintaxis abstracta intermedia: N lectores y M escritores permitían N × M conversiones, una arquitectura más fiable y extensible que marcó el estándar del proyecto.

En dos años se alcanzaron hitos clave: la versión 0.3 (2007) añadió el escritor DocBook y la sintaxis de notas al pie; la 0.4 incorporó tablas, listas de definición y superíndices, y debutó en Hackage. Pandoc 1.0 (septiembre de 2008) llevó escritores para MediaWiki, Texinfo, OpenDocument y ODT, además de bloques de código delimitados —la conocida como sintaxis fenced, popularizada más tarde por GitHub— y resaltado automático de sintaxis. MacFarlane creó la biblioteca zip-archive al no existir un equivalente en Haskell. El sistema flexible de plantillas llegó en la versión 1.4 (enero de 2010) y, ese mismo año, el repositorio migró de Google Code a GitHub, lo que disparó la visibilidad del proyecto.