This first iteration introduces file-based collections for structured, reusable content.
Collections are stored as flat Markdown files under collections/<collection-name>/ and are available in templates through:
cms.collection('blog').query()
The API reuses the existing Lucene query capabilities, including filtering, sorting, expressions, and pagination. Collection metadata is indexed in a shared, site-scoped Lucene index.
Collection entries use the same workflow, preview, and publication scheduling rules as regular content. Markdown bodies remain unrendered, allowing templates to render them explicitly with the markdown filter when needed.
Collections and files can be added, updated, renamed, or removed at runtime. Filesystem changes are detected and indexed automatically without restarting the server. Form definitions and additional collection configuration are not part of this iteration.
This first iteration introduces file-based collections for structured, reusable content.
Collections are stored as flat Markdown files under
collections/<collection-name>/and are available in templates through:cms.collection('blog').query()The API reuses the existing Lucene query capabilities, including filtering, sorting, expressions, and pagination. Collection metadata is indexed in a shared, site-scoped Lucene index.
Collection entries use the same workflow, preview, and publication scheduling rules as regular content. Markdown bodies remain unrendered, allowing templates to render them explicitly with the
markdownfilter when needed.Collections and files can be added, updated, renamed, or removed at runtime. Filesystem changes are detected and indexed automatically without restarting the server. Form definitions and additional collection configuration are not part of this iteration.