Twenty Years of Pandoc

333 points · 40 comments on HN · read original →

Points and comments are a snapshot, not live.

John MacFarlane recounts how pandoc grew from a Haskell hobby into a ubiquitous document converter.

Pandoc 0.1 (2006) was 3000 lines of Haskell code with no dependencies. It parsed Markdown via parser combinators into an AST, enabling N×M conversions. By 2026, pandoc supports over 50 formats, has become the most popular Haskell program on GitHub, and is integrated into Quarto and Jupyter Notebook. Key milestones include the addition of templates (2010), a Lua filter system (2017), and a citeproc library rewrite (2020). The project received a $100,000 grant from Handshake in 2018. John MacFarlane is a philosophy professor at Stanford.

What commenters are saying

Commenters overwhelmingly thank MacFarlane and share practical workflows: converting HTML to clean Markdown, normalizing .docx for git diffs, and building static site generators. Several note that pandoc's Haskell foundation naturally filters contributor quality. One user credits pandoc with enabling their entire scientific career. A few compare it to newer tools like Typst and djot, but praise pandoc's reliability and clean output.