Urgent.News

What's breaking now, across thousands of outlets.

Tech

Twenty Years of Pandoc

In August 2006, the first version of pandoc was uploaded to the author's website, released under the free GPL license. Initially consisting of around 3000 lines of Haskell code, with minimal dependencies, the program could convert Markdown, reStructuredText, HTML, and LaTeX documents into various formats, including RTF and S5. The author had no idea that this modest beginning would blossom into a project spanning over two hundred releases over twenty years, becoming the most popular Haskell application, fostering collaborations with programmers worldwide, and evolving into a tool supporting more than fifty document formats.

The project's inception was sparked by a philosophical logician friend's recommendation of the Haskell programming language, along with an introductory book and a handy parser combinator library (parsec). The author was intrigued by Haskell's capabilities, particularly for writing parsers and compilers, and saw potential in crafting a document converter in Haskell.

This decision led to the creation of a Markdown parser, which utilized parser combinators to produce an abstract syntax tree (AST), yielding a more reliable and extensible architecture compared to the common regex-based approaches.

As the project progressed, the author added support for additional formats, such as reStructuredText and LaTeX, and soon after introduced writers for these formats as well. The document converter evolved to support more complex features, like automatic generation of citations and bibliographies using CSL style and the citeproc-hs library. Throughout the journey, the author remained deeply involved in discussions with other Markdown implementers, contributing to the project's growth and adaptability.

By 2007, pandoc had seen significant improvements, including the addition of support for DocBook, Markdown tables, definition lists, and enhanced ordered lists. The release of pandoc 0.4 also expanded the range of writers, now encompassing groff man pages and ConTeXt. The project was officially released on the Hackage Haskell package repository in 2008, version 1.0, offering new writers for MediaWiki, GNU Texinfo, OpenDocument, and delimited code blocks with automatic syntax highlighting.

The author's efforts to make pandoc accessible and versatile resulted in numerous collaborations and achievements, from packaging for Debian Linux to the creation of essential Haskell packages like zip-archive and highlighting-kate. The journey of pandoc, from a procrastination-driven project to a widely-used, internationally-supported tool, is a testament to the power of choice, determination, and the joy of writing in Haskell.

Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at pandoc.org →

More in Tech

More from Monday 3 August →