Site settings
The miscellaneous settings block, rendering, i18n locales and WYSIWYG styles, plus the read-merge-write pattern its writes require.
Site-wide settings live in the miscellaneous settings block: rendering options, locales, and the WYSIWYG style palette. This is also where the site's locales are declared. Unlike the collection-shaped configs, miscellaneous is a single YAML document with no partial-patch path: the only write is update-setting, which replaces the whole file — so every write starts from a read and sends the file back complete.
Redirections are not part of this block, although they are often looked for here: the API rejects a redirections key inside miscellaneous outright (422, "A Settings config can't have a 'redirections' property"). They are a settings surface of their own.
The miscellaneous block
rendering:
minifyHtml: false
404: '404.liquid'
i18n:
enabled: true
default:
name: Français
slug: fr
country: fr
translations:
- name: English
slug: en
country: gb
wysiwyg:
styles:
lead:
title: 'Chapô (lead)'
tag: p
css: >
font-size: 1.25em; line-height: 1.55; color: #565E50; font-weight: 380;
attrs:
class: lead
callout:
title: '<b style="color:#07761F;">Encadré (note)</b>'
tag: div
css: >
border-left: 3px solid #0BBF3D; background: #F2F4ED; padding: 12px 16px;
attrs:
class: callout
small:
title: '…'
tag: span
css: '…'
attrs:
class: small-note
dropcap:
title: 'Lettrine (dropcap)'
tag: p
css: 'overflow: hidden;'
attrs:
class: dropcap
Top-level keys
| Key | Notes |
|---|---|
rendering |
minifyHtml (bool); 404 (template path for the 404 page, live '404.liquid'). |
i18n |
enabled (bool); default: {name, slug, country}; translations: [{name, slug, country}, …]. This is where locales live. Live: default fr/fr, translation en/gb. |
wysiwyg.styles |
The site-wide WYSIWYG style palette. |
i18n
The i18n key declares the site's locales. default is the primary locale; translations is the array of additional ones. Each locale is {name, slug, country}, where slug is the URL segment (fr, en) and country selects the flag. See The multilingual model for how locales drive locale, locales and per-locale URLs.
wysiwyg.styles
Each style entry is keyed by an identifier and carries:
| Key | Notes |
|---|---|
title |
Dropdown label in the editor. HTML allowed. |
tag |
The tag the style wraps the selection in. |
css |
Inline CSS, used for the CMS preview only. |
attrs |
Attribute map, typically class. |
Production styling comes from attrs.class plus front-end CSS, not from the preview css.
Writing the block: read, merge, write back complete
update-settings-partial does not accept miscellaneous — its setting_type is limited to the collection-shaped configs (page-types, content-types, item-set-types). The write path for this block is update-setting, and it replaces the entire file. The safe sequence is always the same three calls:
get-site-settings(type: 'miscellaneous')
update-setting(setting_type: 'miscellaneous', yaml_content: <the whole file, with your change merged in>)
get-site-settings(type: 'miscellaneous')
i18n without re-sending the wysiwyg palette deletes the palette, silently, with a success: true. Start from the read, merge your change into it, and send the file back whole — including every key you have no opinion about.setting_type values
| Value | Block | Readable (get-site-settings) |
Patchable (update-settings-partial) |
|---|---|---|---|
content-types |
Content-type schema. | yes | yes |
page-types |
Page-type schema. | yes | yes |
item-set-types |
Collection-type schema. | yes | yes |
global-fields |
Global-fields schema. | yes | no — update-setting |
miscellaneous |
This page. | yes | no — update-setting |
Routes are not a setting_type at all: they are read with get-routes and written with the dedicated create-route / update-route / delete-route tools.
Related
Last updated September 6, 2026.