Please help Ukraine!
Sponsor
Pandoc   a universal document converter
Cartoon of a toaster-like machine ingesting paper,
bits, and a cat and outputing a book

If you need to convert files from one markup format into another, pandoc is your swiss-army knife. Pandoc can convert between the following formats:

(← = conversion from; → = conversion to; ↔︎ = conversion from and to)

Lightweight markup formats

↔︎ Markdown (including CommonMark and GitHub-flavored Markdown)
↔︎ reStructuredText
AsciiDoc
↔︎ Emacs Org-Mode
↔︎ Emacs Muse
↔︎ Textile
Markua
txt2tags
↔︎ djot

HTML formats

↔︎ (X)HTML 4
↔︎ HTML5
→ Chunked HTML

Ebooks

↔︎ EPUB version 2 or 3
↔︎ FictionBook2

Documentation formats

GNU TexInfo
↔︎ Haddock markup

Roff formats

↔︎ roff man
roff ms

TeX formats

↔︎ LaTeX
ConTeXt

XML formats

↔︎ DocBook version 4 or 5
↔︎ JATS
BITS
TEI Simple
OpenDocument XML

Outline formats

↔︎ OPML

Bibliography formats

↔︎ BibTeX
↔︎ BibLaTeX
↔︎ CSL JSON
↔︎ CSL YAML
RIS
EndNote XML

Word processor formats

↔︎ Microsoft Word docx
↔︎ Rich Text Format RTF
↔︎ OpenOffice/LibreOffice ODT

Interactive notebook formats

↔︎ Jupyter notebook (ipynb)

Page layout formats

InDesign ICML
↔︎ Typst

Wiki markup formats

↔︎ MediaWiki markup
↔︎ DokuWiki markup
TikiWiki markup
TWiki markup
Vimwiki markup
XWiki markup
ZimWiki markup
↔︎ Jira wiki markup
Creole

Slide show formats

LaTeX Beamer
→ Microsoft PowerPoint
Slidy
reveal.js
Slideous
S5
DZSlides

Data formats

CSV tables
TSV tables

Terminal output

ANSI-formatted text

Custom formats

↔︎ custom readers and writers can be written in Lua

PDF

→ via pdflatex, lualatex, xelatex, latexmk, tectonic, wkhtmltopdf, weasyprint, prince, pagedjs-cli, context, or pdfroff.

Pandoc understands a number of useful markdown syntax extensions, including document metadata (title, author, date); footnotes; tables; definition lists; superscript and subscript; strikeout; enhanced ordered lists (start number and numbering style are significant); running example lists; delimited code blocks with syntax highlighting; smart quotes, dashes, and ellipses; markdown inside HTML blocks; and inline LaTeX. If strict markdown compatibility is desired, all of these extensions can be turned off.

LaTeX math (and even macros) can be used in markdown documents. Several different methods of rendering math in HTML are provided, including MathJax and translation to MathML. LaTeX math is converted (as needed by the output format) to unicode, native Word equation objects, MathML, or roff eqn.

Pandoc includes a powerful system for automatic citations and bibliographies. This means that you can write a citation like

[see @doe99, pp. 33-35; also @smith04, ch. 1]

and pandoc will convert it into a properly formatted citation using any of hundreds of CSL styles (including footnote styles, numerical styles, and author-date styles), and add a properly formatted bibliography at the end of the document. The bibliographic data may be in BibTeX, BibLaTeX, CSL JSON, or CSL YAML format. Citations work in every output format.

There are many ways to customize pandoc to fit your needs, including a template system and a powerful system for writing filters.

Pandoc includes a Haskell library and a standalone command-line program. The library includes separate modules for each input and output format, so adding a new input or output format just requires adding a new module.

Pandoc is free software, released under the GPL. Copyright 2006–2022 John MacFarlane.