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 (in .set "John Keats")
  Add it to marks: in pandoc.yaml.
  See https://keystone.knight-owl.dev/errors/undeclared-mark/

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.

Declare the mark before you reference it

Add it under marks: in pandoc.yaml. See Running headers & footers for how a mark feeds a running header.

marks:
  - ghost