Skip to content

core — the full template

core ships the entire Keystone engine inside your project and builds the Docker image locally. It exists for authors who want to understand the engine or customize it — without reverse-engineering anything. Everything that core-slim keeps in a prebuilt image is here in plain sight, under .pandoc/.

Get it from the core template repository. The authoring workflow is identical to core-slim — the Writing and Configuration sections apply unchanged.

What's different

Alongside the usual project files, core includes:

  • .pandoc/ — the engine: publish.sh, import.sh, the Lua filters, the handler directories, and the metadata bundles.
  • A Dockerfile — so the image is built from source rather than pulled.

The one extra command is make image, which builds that image; the publish targets depend on it:

make image                # build the runtime image locally
make publish              # build a PDF (builds the image first if needed)
make all                  # PDF, EPUB, and DOCX
make import artifact=draft.docx
make clean
make ps                   # show this project's containers
make down                 # stop this project's containers
make reset                # stop them and drop the volumes they shared
make refresh-texlive-key  # re-vendor the TeX Live signing key
make help

There's no make verify — you build the image yourself, so there's no published signature to check. make refresh-texlive-key is a recovery step, needed only when make image cannot verify its download — see the runtime image.

Every project.conf setting that takes a one-run override is listed under How settings are applied.

The engine

Because the runtime is in your project, you can read and change it. The engine covers how a build works and where the seams are.

If you find yourself heavily rewriting the engine, you've crossed from using Keystone into forking it — which is a legitimate thing to do, and core is the starting point for it.

When a new release lands, Upgrading your project covers moving a core project onto it; an AI assistant can run the AI-assisted procedure for you (it stops and hands back if you've customized the engine).