Skip to content

Undeclared mark

A set names a running-header mark that was never declared. Unlike most bad values, this one is fatal — the mark would write to a channel that doesn't exist.

What it looks like

The current author is [John Keats]{.set mark="ghost"}.
ERROR: .set mark 'ghost' is not declared — add it to marks: in pandoc.yaml (in .set "John Keats")

What it means

Running-header marks are declared up front under marks: in your metadata; set then writes a value into one of them for the running header to read back. A set pointing at an undeclared mark has no channel to write to, so Keystone stops rather than emit output that references a mark the document never created. The check is the same in every format, so building EPUB first won't let it through.

How to fix

Declare the mark in pandoc.yaml, then reference it:

marks:
  - ghost

See Running headers & footers for how marks feed a running header.