Twenty Years of Pandoc
7 hours ago
- Pandoc was created by John MacFarlane in 2006 as a Haskell program for document conversion, initially supporting Markdown, reStructuredText, HTML, and LaTeX.
- The project grew over 20 years to support over 50 input formats and 76 output formats, becoming the most popular Haskell program and integrated into tools like Quarto and Jupyter.
- Pandoc's architecture uses a universal abstract syntax tree (AST) with readers and writers, enabling N×M conversions and extensibility.
- Haskell's algebraic data types, strong type system, and purity were crucial for managing the project's complexity and ensuring reliability.
- Major milestones include template system (2010), GitHub move (2010), docx/EPUB support, Lua filters, JSON filters, commonmark spec (2014), Pandoc 2.0 with PandocMonad, and Pandoc 3.0 modularization.
- Pandoc gained citation processing, syntax highlighting, and support for many markup languages through contributions from over 600 people.
- Recent additions include Typst, djot, WASM support, and various readers/writers (mdoc, POD, BBCode, etc.).
- The project received a $100,000 donation from Handshake in 2018 and continues to be actively maintained with daily bug fixes and improvements.
- MacFarlane reflects on the choice of Haskell, noting its benefits for maintainability and correctness compared to other languages.
- Future of pandoc may be challenged by LLMs, but pandoc offers advantages in efficiency, determinism, and reliability for document conversion.