Skip to main content

pandocmk: a minmalist make tool for Pandoc

Writers of complex Pandoc documents often run into three issues:

  1. Very long command-line options that they need to remember (or copy-paste) all the time
  2. Need for extensibility, which can be mostly solved via filters (at the cost of #1)
  3. Pre/post processing tools, which can be solved via more complex one-liners (pandoc ... && SumatraPDF output.pdf && ...)

The goal of pandocmk is to simplify using Pandoc, by helping with #1 and a little bit with #3 (#2 is covered by e.g. panflute). It uses information from the YAML metadata field to build the command-line arguments, and also has extra arguments for extras I find useful (such as monitoring a file and auto-building as needed, auto-viewing in a PDF viewer, etc.).

Existing tools

There are several good existing tools:

  1. pandocomatic (Ruby)
  2. panrun (Ruby; powers panwriter)
  3. rmarkdown (R; powers bookdown and RStudio)
  4. panzer (Python; inactive)

However, they don't completely fill my needs, which leads to this package.

Usage

pandocmk has a few custom command-line options. Everything else is forwarded to Pandoc (and overrides whatever is set in the YAML metadata). Thus, in practice this is just a Pandoc wrapper with a few extras.

pandocmk [OPTIONS] [FILES]
  --view			open output file in a viewer such as SumatraPDF for .pdf
  --watch			monitor the input files for changes, and rebuild as needed
  --tex				save .tex output besides .pdf
  --timeit			show build time
  --verbose			show debugging information

  --draft			NOT IMPLEMENTED.
                    When building a Latex PDF, choose faster options (pdflatex, etc)

Note: other options are passed to Pandoc

Installation

To install pandocmk, open the command line and type:

pip install pandocmk

Note: pandocmk requires Python 3.7 or higher.

Uninstall

pip uninstall pandocmk

Dev Install

After cloning the repo and opening the pandocmk folder:

python setup.py install: install the package locally

python setup.py develop: install locally with a symlink so changes are automatically updated

Dev Update PyPI:

python setup.py sdist bdist_wheel
python -m twine upload dist/*

(Ensure README.md has unix line endings)

Roadmap

  • v0.1: use the pandoc metadata to build the CLI arguments
  • v0.2: add support for the --view and --watch options
  • v0.3: tweaks based on what we learned so far
  • v0.4: add support for styles (should we name them output, defaults, etc.?)

Release files for pandocmk 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pandocmk 0.2.1
File Size Uploaded
pandocmk-0.2.1.tar.gz 8.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pandocmk 0.2.1
File Interpreter ABI Platform
pandocmk-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size:17.6 kB

Release files / pandocmk-0.2.1.tar.gz

Download URL pandocmk-0.2.1.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
08080f019c6b84bea878619040f1d71e6b21a505ed6a3307d5c2f81b586c219c
BLAKE2b-256 checksum
How to use checksums
6905cdf34fc0f51ac6e6fd123481faa2b28d2ec28dc1f579039703cefa73dae9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.7.4

Release files / pandocmk-0.2.1-py3-none-any.whl

Download URL pandocmk-0.2.1-py3-none-any.whl
Size 9.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ee3b307594769ccc18e271706789ddd5fa79c2c7b146450f82558dd68847a5a8
BLAKE2b-256 checksum
How to use checksums
1f8d30b5f1f33a2ac6c5f9fcf5874a0984e745db4c0b5d0035fce831983539f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.7.4

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page