Pandoc marked the twentieth anniversary of its first public release, tracing how a small Haskell experiment became a document-conversion system installed on millions of computers. Creator John MacFarlane first uploaded the program to his website on August 3, 2006, under the GPL free-software license.

Version 0.1 comprised about 3,000 lines of Haskell and depended only on the standard library provided by the Glasgow Haskell Compiler. It could read and write Markdown, reStructuredText, HTML and LaTeX, while also producing RTF or S5 output. Two decades and more than 200 releases later, Pandoc supports over 50 document formats and can generate citations and bibliographies. It has also been integrated into tools including Quarto and Jupyter Notebook.

MacFarlane’s account describes the project as a consequence of choosing a language before choosing an application. After encountering Haskell through a friend’s writing, he wanted a substantial project with which to learn it. Haskell’s suitability for parsers and compilers, along with its Parsec library, led him to build a Markdown parser.

Pandoc’s architecture differed from contemporary implementations that transformed Markdown directly into HTML through regular-expression substitutions. It instead parsed input into an abstract syntax tree, which could then be rendered into another format. That separation made extension systematic: new readers expanded the inputs and new writers expanded the outputs, with each side able to work across the other. The structure meant each additional parser or renderer could participate in many conversion paths, rather than requiring a separate direct transformer for every pair of formats.

MacFarlane added reStructuredText support for his lecture materials, LaTeX output for producing PDFs and Markdown output for converting existing notes. He initially publicized the release only by emailing two friends. A move toward broader adoption began later in 2006, when developer Recai Oktaş worked with him to package Pandoc for Debian.

The project expanded quickly. Releases in 2007 added DocBook, tables, definition lists, footnotes and several output formats before Pandoc appeared on the Hackage repository. Pandoc 1.0 arrived in September 2008 with MediaWiki, OpenDocument, ODT and GNU Texinfo writers, fenced code blocks, syntax highlighting, and support for automatically producing citations and bibliographies. Some needs also prompted MacFarlane to create supporting Haskell libraries for ZIP archives and highlighting.

A customizable template system followed in version 1.4 in January 2010. That year the project moved from Google Code to GitHub, while subsequent work added EPUB and Org-mode output, Textile input and TeX-to-MathML conversion. MacFarlane credits both contributors and the program’s usefulness in his academic work for turning a learning exercise into durable publishing infrastructure.