Pandoc Extras - jgm/pandoc GitHub Wiki
- Editors
- Web Services to Process Files by Pandoc
- Workflow
- Tools for Websites
- Citation
- Other Wiki Pages
- Examples of uses of pandoc
Editors
- Atom Packages
- Emacs package for exporting using pandoc
- Scripts for using pandoc with BBEdit and TextWrangler, as well as Notepad++
- pandoc-mode for emacs, by Joost Kremers
- PanWriter (GitHub page) – distraction-free markdown editor with pandoc integration and paginated preview
- Zettlr (GitHub page) - a fully featured markdown editor with pandoc integration, and pandoc compatible citation autocompletion.
- Mac OS X Services to invoke pandoc from any text editor
- Tool for using pandoc from Notepad++, courtesy of Ted Lilley
- RStudio running Quarto or R Markdown, an IDE workflow that uses knitr and pandoc for a complete writing / analysing / publishing workflow.
- Sublime Text, a number of plugins available for Sublime Text via the plugin Package Control. See Plaintxt Productivity and Writing academic papers in Markdown using Pandoc for further details.
- TextMate bundle for pandoc, courtesy of David Sanson (for TextMate 2 only)
- vim-pandoc project, integration with pandoc and utilities for vim, courtesy of Felipe Morales (fmoralesc) and others. Covers:
- vim-pandoc, pandoc execution, folding, navigation, edition, etc.
- vim-pandoc-syntax, syntax file.
- vim-pandoc-after, integration with third-party plugins (snippets, nrrwrgn).
- vim syntax file for pandoc, courtesy of tao_zhyn
- vim HTML viewer use pandoc, by lambdalisue
- vim HTML viewer use pandoc, konqueror or firefox, by tex
- vim Unite BibTeX source for pandoc, by Mark Sprevak
- fzf BibTeX, successor of vim Unite BiBTeX (vim Unite is no longer being maintained)
- The Zim desktop wiki can export content to markdown using pandoc extensions (need zim version 0.55 and up) the opened file as input.
- pandoc-live is a little utility can be used to watch a Pandoc document for changes, and display the rendering in real-time in a web browser.
- docker-pandoc - use pandoc on hosts without haskel installed (via docker). Brings a inotify based watch tool for nearly live generation of output documents.
- Writage, Markdown plugin for Microsoft Word, is integrated with Pandoc.
- Markdown Preview Enhanced, a super powerful markdown extension for Atom and Visual Studio Code. It can use pandoc as the Markdown parser.
Web Services to Process Files by Pandoc
- Docverter
- Pandoc online
- Pandoc as a service: Serving on localhost. (See also: WaybackMachine)
- Markup.rocks runs a version of pandoc compiled to javascript via ghcjs. Conversion takes place client-side, in the browser, and a live preview of the result is available.
Workflow
- Pandocomatic, allows you to configure flexible and inheritable YAML templates specified in the document metadata that controls all Pandoc settings, filters, metadata and pre/post-processing. Applied to a directory, pandocomatic can act as a static site generator.
- pdc is a command line wrapper for pandoc which makes it possible to completely control the conversion process from the first YAML meta block in the input document(s), including multiple output formats at the same time, templates, pre- and post-processors, etc.
- panrun: minimal script that runs pandoc with the options it finds in the YAML metadata of the input file.
- kokoi, a configurable markup file watcher, previewer, and converter that uses Pandoc as the default markup processing engine. kokoi watches for changes on the markup files in the directory kokoi is started, and if they change, automatically reprocesses and previews them directly in the browser.
- Pandoc Build Task, a small MSBuild target to transform files with Pandoc. Provided as a Nuget package.
- pandoc-schemata, providing JSON Schema files for Pandoc JSON.
- pandocket, 'A python script that looks for special lines in a markdown file and uses those lines to convert, clean up, and insert content from URLs into the file for processing by pandoc'
- fish-completion-pandoc, a pandoc completion script for use with the fish shell.
- Pandoctools is a set of tools for writing reproducible Markdown reports. They rely on Pandoc and Jupyter kernels. At it's core is a profile manager of text processing pipelines (crossplatform bash scripts) that define chain operations over text (Pandoc filters, any text CLI filters).
- bookbuildeR is a tool chain for compiling e-books from pandoc flavored Markdown to pdf, epub, html, and azw3, which also comes as a docker container and can also be used via online continuous integration tools such as Travis CI to automatically compile books whose sources are hosted on GitHub upon commits and automatically publish the results to GitHub pages. It also supports separating book sources in one repository and example program codes into another one, which is suitable for computer science books.
- GitHub Actions is a workflow automation tool (CI/CD) from GitHub.
You can run pandoc on GitHub Actions on every push (or other GitHub event) to, for example, convert a source document to another markup and publish the results.
There are two approaches to make pandoc available on GitHub Actions:
- You can reference container actions based on the official docker pandoc images in your GitHub Actions workflows. To learn how to set this up, see these examples.
- If, instead, you want to install pandoc on the host machine directly, you can use thus setup-pandoc. This may take longer and does not offer the encapsulation of the docker images, but makes pandoc available in all steps, or even in different versions for matrix builds.
- (abandoned since 2018) panzer, adds the concept of 'styles' to pandoc. Styles control templates, metadata settings, pandoc command line options, and instructions to run filters and pre/postprocessors in a simple, reusable, and recombinable way.
Preprocessors
-
PP - A generic Preprocessor (with Pandoc in mind) lets you embed the following diagrams in Markdown code blocks:
- Graphviz (needs to be installed separately)
- PlantUML (embedded in pp at compile time)
- Ditaa (embedded in pp at compile time)
- Asymptote and R figures
and offers many powerful features to expand pandoc power:
-
pancritic - using CriticMarkup with pandoc
pancritic parses CriticMarkup in pandoc as a wrapper or preprocessor. CriticMarkup is an in-place diff format, while
pancritic
applies/resolves the indicated diffs. It supports HTML and LaTeX outputs.
Legacy
- (included in PP) Using GPP as a preprocessor to get TeX-like macro features in Markdown.
- (abandoned since 2013) pandoc-gpp by David Loureiro is a wrapper around pandoc and gpp in order to provide some macros for extra markup not available in markdown and its extensions.
- (included in PP) mddia lets you embed ditaa ASCII-art diagrams in Markdown code blocks
Additional Readers
- Perl module Pod::Simple::Pandoc parses Plain Old Documentation (POD) markup format to Pandoc data model.
Doc processing tools using Pandoc
-
Rippledoc processes .md files into html. It ripples down from the current directory through nested subdirectories processing md files as it goes. It also generates tables of contents and navigation links, stitching together the documents into an easily-navigable whole.
-
SPAB a very simple windows GUI that uses Pandoc and a couple other open source tools to produce a .mobi, .epub, .doc, and .pdf ready for the most popular self-publishing services. (See also: WaybackMachine; How to Self Publish a Book.)
-
Pandoc Droplets and Services is a collection of simple and easily customizable Automator drag-and-drop applets and service menu items that use pandoc to produce pdf, docx, odt, and dzslides output on OS X.
-
Markdown menus, by Luke Maciak, provides contextual menus on Windows for creating PDFs and Word documents from markdown files. Double-click on the reg file to install.
-
PandocMarkdownTools is a small collection of scripts that creates a simple menu structure for conversion of Markdown docs using Pandoc. There are also scripts to simplify creation of Pandoc tables in Markdown and to automate replacement of document markers with the table text.
-
tpl4md by David Loureiro provides markdown templates for widely used documents such as simple pdf documents, complex pdf documents, letters, invoices, orders, or even slides. The goal is to be able to focus on the content that will be written in markdown. The remaining elements are handle by pandoc, latex etc.
-
pandoc-watch by David Loureiro is a simple watcher that call the pandoc command with the provided arguments when a file/folder modification is detected.
-
Uberdoc by Stephan Brosinski is a wrapper script for Pandoc which provides a build system to turn a number of markdown files (chapters) into large documents.
-
Xmindoc is a wrapper script for Pandoc which converts XMind mindmaps to any documents that are available in Pandoc.
-
Octavo is a wrapper script for Pandoc that helps to render multiple versions of the same markdown file, FTP them to a server, and insert text into the document that refers to these other versions in plain English. It supports special markdown to produce highlight boxes and other features, comes with its own templates (in Tufte style, normal PDF, Word, html, etc.), and can produce spoken audio versions.
-
PanDiff produces prose diffs for any document format supported by Pandoc, and can output Markdown with CriticMarkup, HTML, PDF, and Word docx with Track Changes
-
Bookmanager creates a publication from a number of distributed sources in github or your filesystem based on markdown files that are conveniently integrated in a table of content using yaml. It is especially useful to create customized books, lecture notes, or handouts and allows for easy customization of content for lecture notes.
-
Commentary is a command line tool and Pandoc filter that preserves native-style comments between Markdown and docx files.
Using pandoc with ConTeXt
- filter module by adityam, which allows you to use
\startmarkdown
and\stopmarkdown
directly in ConTeXt. - an even simpler route from markdown to PDF, via ConTeXt.
GUIs for using Pandoc
- DocDown: menubar bar app for Pandoc conversions. limited options, but very accessible for less tech-savvy people.
- Pandoc Plugin for Obsidian: Wide range of conversions from markdown documents in Obsidian.
- Pandoc-Suite for Alfred: enables one-click-conversion of Markdown Documents with Citations into
.docx
,.pdf
,.html
,.odt
, or.pptx
with the proper bibliography. Also features a Citation Picker for Pandoc Citations and a Citation Style file search. - Typora: A markdown editor, use Pandoc to export to various type of documents. See more in Typora Wiki
Tools for Websites
Blogs
- WordPress EasyFilter, by Yang Zhang, makes it easy to use pandoc with WordPress blogs.
Wikis
- gitit, a pandoc-based wiki that stores pages in a git (or darcs or mercurial) repository.
- ikiwiki-pandoc, a feature-rich pandoc plugin for ikiwiki. Supports most features of pandoc relevant for a wiki, including almost all textual input formats, several math handling options, as well as citation/bibliography processing via pandoc-citeproc. It also supports several export formats, including pdf, docx, odt, beamer and revealjs. (Ikiwiki-pandoc was originally a fork of the currently unmaintained pandoc-iki).
Static website generators
- yst: create static websites from YAML data and string templates, written in Haskell.
- Hakyll: a static website compiler library in Haskell.
- Website: a bash shell script by Caleb McDaniel to generate a site using pandoc.
- Jekyll:
- jekyll-pandoc-multiple-formats
- jekyll-pandoc, used for the Opening Science book
- (Also see this post for implementation on OctoPress)
- Nikola: a Python static site generator supporting many compilers including pandoc.
- wmk: A flexible and versatile static site generator written in Python; uses pandoc to enable non-markdown content (such as Org or RST) and non-html output (such as PDF).
- Pandocomatic RubyGem. Can also be used to automate the use of pandoc in a more general way.
- pdsite: single shell script with no dependencies, runs on Unix-like systems.
- pdblog: even simpler shell script than pdsite, specifically for blog-like sites.
- gh-themes-magick: publish your GitHub project’s single page website from
master
branch’s/docs/
folder using GitHub themes, and let pandoc scripts update its contents to mirror the project’sREADME.md
. - simple-template/pandoc: A system to generate static websites using Make.
- jqt template engine: jqt uses jq as expression language and Pandoc as MarkDown processor. jqt also implements a preprocessing stage using gpp for templates, MarkDown documents, JSON data and CSS files.
Serving markdown files with apache
Pandoc wrappers and interfaces
See Pandoc wrappers and interfaces
Citation
Integration with Reference Managers
- BibDesk Export Templates: drag and drop pandoc-style citations from BibDesk into your document; use pandoc to export formatted reference lists from BibDesk.
- Bookends-Tools: Uses Alfred to interface Bookends Reference Manager to 11 different citation tools, several of which focus on Pandoc formatting and workflow.
- zotxt, allowing direct usage of a Zotero library (with zotxt-emacs for completion in emacs)
- Zotero Integration Extension: If you miss a Word like workflow working with Zotero where you can just search your Zotero library and insert citations wherever you want, then this extension provides such functionality in Brackets for your markdown documents.
- Applets for Zotero and Scrivener integration using Better BibTeX plugin's new Cite as you Write feature. Use in conjunction with this workflow for integrating Scrivner, Pandoc, Zotero and Marked 2
- pandoc-wikicite allows to directly reference bibliographic items from Wikidata
- The Pandoc-Suite for Alfred also includes a citation picker that can insert Pandoc Citations systemwide (using either Alfred or Zotero as GUI.)
Citation Style Language (CSL) with pandoc
- Testing and Using CSL Style Files with Pandoc -- a GitHub repository with a shell script, a Markdown file and usage instructions enabling you to create visual representations of the effects that any one of the more than 1200 available Citation Style Language (CSL) files may have on your output documents.
Other Wiki Pages
Filters
See Pandoc Filters
Templates: Illustrative Pandoc Templates
- This wiki is developing a collection of User Contributed Templates for purposes of illustration; contribute your own, or if you keep pandoc templates under revision control, link them here.
Examples of uses of pandoc
- Using pandoc for IETF RFC creation, courtesy of Miek Gieben
- Preserving old books by rewriting them in markdown, one example of several etexts at Project Gutenberg originally transcribed in markdown