Skip to content
Strife Docs

Reference Field Reference

fields.chapters()

Repeatable nested-content list, each item shaped by a content template.

Repeatable nested-content list. Maps to editor { name: 'str-chapters', type: 'chapters' }. Each item is itself shaped by one of the content templates named in allow.

Example

TypeScript
fields.chapters({
  label: 'Sections',
  allow: ['hero', 'text-block', 'gallery'],
  size: 20,
})

Options

OptionTypeRequiredDescription
label
string
Yes
Label shown to editors in Strife Studio.
description
string
No
Tooltip shown to editors.
localizable
boolean
No
When true, output is Record<string, unknown[]> — one chapter list per locale. Real Strife templates use this for locale-specific aside sections etc.
searchable
boolean
No
Include in the team's search index.
filterable
boolean
No
Allow filtering content lists by this value.
protected
boolean
No
Restrict editing to users with the appropriate permission.
propertyName
string
No
Override the stored property name.
allow
string[]
No
Allowed content-template names (type: 'content') for items. Omit to allow any.
hint
string | null
No
Display hint shown above the chapters list in the editor.
size
number | null
No
Maximum number of items.
Note:

v1 limitation: the output type is unknown[] (or Record<string, unknown[]> when localizable) regardless of what's in allow. Recursive type inference — resolving each chapter item to its own template's generated interface — isn't implemented yet; cast the array to the expected item shape after Infer<> if you need it typed.

Output type

unknown[], or Record<string, unknown[]> when localizable: true.

See also

  • Chapters — the same editor, documented from the Strife Studio UI side.
  • fields.contentTemplate() — embeds a single content template inline instead of a repeatable list.