Configuration reference
Every configuration document Forumulate reads has a published JSON Schema, dated like the API (2026-12-01): a schema at a date never changes incompatibly.
Document | Schema | Reference |
|---|---|---|
Site config — A site’s | ||
Space theme — A space’s (or a site’s | ||
forumulate.yaml (publish manifest) — The publish manifest: which spaces a folder publishes, their settings and theme, the site around them. It has no | ||
Front matter — The YAML block at the top of a Markdown page: title, slug, order, the kind and parameters of the piece, and every page setting | ||
Forum category — A forum category’s settings. | ||
forumulate.yaml, version 2 (site manifest) — The whole-site document |
|
Casing
Every key in a JSON or YAML configuration document (site config, theme, forumulate.yaml, a category) is camelCase, exactly:
primaryColor,footerColumns,headerLinks.primary_colorandPrimaryColorare unknown keys, refused with the camelCase name in the hint. The one exception is two top-level blocks of a version-2 site manifest, which are snake_case:reader_auth(a list of sign-in configurations) andstatus_monitors;readerAuthis a different key there, the one-word shorthandreaderAuth: atlas.Front matter is the exception: a key is read in any casing (
seo_title,seo-title,SeoTitleall meanseoTitle), and the names other tools use (description,sidebar_label,sidebar_position,image) are read as ours.Enum values are lower-case (
"wide","system"), except space types and visibilities, which are upper-case ("DOCS","PUBLIC").Colours are
#rrggbb(or#rgb); lengths that are numbers are CSS pixels.
Checking a folder
forumulate validate docs-site/Reads forumulate.yaml, the front matter of every Markdown file, and any JSON or YAML file whose $schema names one of these schemas, and reports each problem with its file, path and did-you-mean. Exit status 0 when everything is valid, 2 when something is not.
The same check is POST /schemas/2026-12-01/validate with { "documents": [{ "schema": "site-config", "document": { … } }] }.