A self-hosted online file converter supporting over a thousand formats, built with TypeScript, Bun and Elysia.
jgm/pandoc
Universal markup converter, a Haskell library and CLI that converts documents between dozens of markup formats such as Markdown, HTML, LaTeX, and DOCX.
Open-source alternative to:Microsoft Word
- Stars
- 46,661
- Forks
- 6,529
- Open issues
- 1,048
- Last commit
- 16 hours ago
What is it?
Pandoc is a Haskell library and command-line tool for converting documents from one markup format to another. It reads a wide range of inputs, including Markdown variants, HTML, LaTeX, DocBook, Word docx, EPUB, and spreadsheets, and writes to formats such as HTML, PDF, PowerPoint, EPUB, and typst.
It works in two stages: readers parse each input into a shared intermediate tree, and writers render that tree into the target format. This means adding a new format requires only a reader or a writer, and users can transform the intermediate tree with Lua or other filters. PDF output is produced through LaTeX, Groff ms, or HTML.
Conversions from Pandoc's own Markdown are designed to be lossless, but conversions from more expressive formats may lose some detail, such as complex tables or formatting like margin sizes.
Key features
- 01Converts between dozens of input and output formats, including Markdown, HTML, LaTeX, and DOCX.
- 02Produces PDF through LaTeX, Groff ms, or HTML engines.
- 03Supports citations and bibliography formats such as BibTeX and CSL JSON.
- 04Extensible through Lua filters and custom readers or writers.
- 05Ships as both a Haskell library and a command-line tool.
Use cases
- Converting Markdown notes or manuscripts into Word, EPUB, or PDF documents.
- Generating slide decks from Markdown with reveal.js or Beamer.
- Migrating documentation from one markup system, such as reStructuredText or DocBook, to another.
- Building document pipelines in CI that output several formats from one source.
Quick start
- 1
Follow the installation guide in INSTALL.md to install pandoc
- 2
Read the User's Guide to learn how to convert documents
Things to know
- Licensed under GPL-2.0, a copyleft license that affects how derived code can be distributed.
- Conversions from formats more expressive than pandoc's Markdown are often lossy.
Topics
FAQ
- What is pandoc?
- Universal markup converter, a Haskell library and CLI that converts documents between dozens of markup formats such as Markdown, HTML, LaTeX, and DOCX. Pandoc is a Haskell library and command-line tool for converting documents from one markup format to another. It reads a wide range of inputs, including Markdown variants, HTML, LaTeX, DocBook, Word docx, EPUB, and spreadsheets, and writes to formats such as HTML, PDF, PowerPoint, EPUB, and typst.
- Is pandoc free to use? What license does it have?
- pandoc is open source under the GPL-2.0 license. Check the license terms before using it in commercial products.
- Is pandoc still maintained?
- Actively maintained. The last commit to pandoc was on Oct 20, 2026.
- What can I use pandoc for?
- Converting Markdown notes or manuscripts into Word, EPUB, or PDF documents. Generating slide decks from Markdown with reveal.js or Beamer. Migrating documentation from one markup system, such as reStructuredText or DocBook, to another. Building document pipelines in CI that output several formats from one source.
- How do I install pandoc?
- Follow the installation guide in INSTALL.md to install pandoc Read the User's Guide to learn how to convert documents
- Where can I get pandoc?
- The source code and installation instructions are on GitHub: https://github.com/jgm/pandoc
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Python utility that converts PDFs, Office documents, HTML, images, audio and more into Markdown for LLM and text analysis pipelines.
Converts PDFs and other documents to markdown, JSON, chunks, or HTML, with optional LLM assistance for higher accuracy.
A Rust library and CLI that converts Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV and PDF files into clean GitHub-Flavored Markdown.
A simple, elegant open-source Markdown editor with realtime WYSIWYG preview for Linux, macOS and Windows.
Translates scientific PDF papers into another language while preserving formulas, charts, tables and layout, with a bilingual output option.