Pandoc at 20: From a Haskell experiment to the world's most popular document converter

Twenty Years of Pandoc

Pandoc at 20: From a Haskell experiment to the world's most popular document converter

John MacFarlane reflects on two decades of Pandoc, the universal document converter he started in 2006 as a way to learn Haskell. What began as a 3,000-line tool for converting Markdown, reStructuredText, HTML, and LaTeX has grown into a project with over 200 releases, support for more than 50 formats, and integration into tools like Quarto and Jupyter Notebook. MacFarlane shares the project's evolution, from early days on his website to becoming the most popular Haskell program on GitHub, and discusses key milestones like the creation of CommonMark and the shift to a more flexible architecture.

A project that started out as nothing more than the product of procrastination was nurtured by the joy of writing in Haskell and by its increasing usefulness for my own academic work.
  1. adamddev1

    > by writing N parsers (“readers”) and M renderers (“writers”), one could support N × M conversions.

    Beautiful writeup for a wonderful project. In an age of vibe-coding hype it's also so nice to see how things can be extended and snowball in usefulness when things are built correctly, by hand, from basic principles.

    > Perhaps, then, in the future, people will no longer have a need for tools like pandoc.

    I think we will need wonderful things like pandoc more and more. As mentioned there is a huge ecological and practical difference. Even if LLMs could get infintisamally close to deterministic-level reliability, it's still so many more orders of magnitude better in efficiency, especially with big batch jobs etc.

  2. aanet

    That a professor of philosophy [1] made tools [2] that are used by millions around the world... that's just mind boggling. In a good (great!) way.

    Pandoc is my go-to tool. Thank you, Sir!

    [1] https://johnmacfarlane.net/index.html

    [2] https://johnmacfarlane.net/tools.html

  3. rahimnathwani

    Pandoc is great. I use it multiple times per day to move content between Outlook emails and a coding harness:

    https://gist.github.com/rahimnathwani/210b1f9cb6ce731a304322...

    cat email-to-xyz.md | md2clip

    clip2md > email-from-xyz.md

More from this day

2026-08-03