Pandoc
A universal document converter.
Pandoc reads and writes dozens of markup formats — Markdown (several flavours), LaTeX, HTML, DOCX, ODT, EPUB, PDF (via LaTeX or HTML), reStructuredText, AsciiDoc, MediaWiki, and many more — and supports a flexible filter system for transforming documents along the way. The internal AST is rich enough that round-tripping between formats usually preserves more than you expect.
Pandoc is the engine behind several higher-level tools. Quarto (scientific publishing), R Markdown (the reproducible-research tool that became Quarto), bookdown (book authoring), and many academic publishing pipelines all delegate to Pandoc for the actual format conversion. Lua filters extend the AST transformation step for project-specific tweaks.
John MacFarlane started Pandoc in 2006 as a conversion tool for his philosophy lecture notes. The project is GPL-2.0 and written in Haskell, which has occasionally made packaging challenging but has proved good for the parsing-heavy work the codebase does. Pandoc remains the most universal markup-format converter in existence.
Install
Debian/Ubuntu: sudo apt install pandoc Fedora/RHEL: sudo dnf install pandoc Arch: sudo pacman -S pandoc macOS: brew install pandoc
Authors
- John MacFarlane (creator)
- Pandoc contributors