← All open source projects

Pandoc

jgm/pandoc

Pandoc is a universal markup and document converter for Markdown, HTML, LaTeX, docx, presentations, and publishing formats.

Forks 3,909
Author jgm
Language Haskell
License GPL-2.0
Synced 2026-06-27

What it is

Pandoc is one of the best-known tools for converting documents between formats. It is often described as a universal markup converter.

The project grew from a problem familiar to documentation writers, researchers, and publishers: one text needs to become HTML, PDF, docx, a slide deck, or LaTeX.

Pandoc’s main idea is to separate content from one specific output format. Text can live in a convenient markup and be built into the needed version by command.

How the project is built

Inside the project are Haskell code, a document model, many readers and writers, Lua filters, and a detailed manual for options.

Pandoc is not limited to Markdown. It connects with CommonMark, HTML, LaTeX, docx, EPUB, presentations, and formats common in publishing.

How people use it

A normal scenario is to write documentation in Markdown, add a template, table of contents, and metadata, then build a website or client-ready version.

In academic and publishing work, Pandoc is valued as a bridge between comfortable markup and formal formats where references, bibliography, and structure matter.

Practical example

Converting Markdown to HTML

This example shows a typical Pandoc scenario: source Markdown becomes another format through an explicit command and a repeatable result.

Language: Bash
pandoc article.md -o article.html
pandoc report.md --toc -o report.docx

The project’s strength is breadth. One tool covers many conversions that would otherwise require several separate utilities.

Strengths

Another advantage is repeatability. A conversion command fits naturally into a Makefile, build script, or documentation publishing system.

The limitation is that universality does not erase format differences. Complex docx, PDF through LaTeX, or custom layout require template work.

Limitations

The result also needs visual review: automatic conversion can preserve content while changing small details in tables, links, or typography.

Pandoc best fits people who want one text source and several output formats without manual copying.

Who it fits

For a simple blog it may be more than needed, but for documentation, books, reports, and learning materials it often becomes the center of the build.

In the catalog, Pandoc matters as a mature open source utility: it solves a boring but very real task of moving documents between worlds.

The practical advice is simple: start with the smallest command, then add templates, contents, metadata, and filters only when they are actually needed.

Pandoc is especially strong where text lives longer than one release. If a team prepares a monthly report, learning material, or technical guide, manual conversion quickly starts consuming time. Pandoc turns document publishing into a repeatable operation: input files, templates, options, and output can be checked, discussed, and placed in the build system next to code.