Frontmatter Reference
Fields marked auto-set by karaoke-enrich are written by the AI enrichment pipeline (karaoke-enrich). You can set them manually; if you do, karaoke-enrich skips them.
Blog posts
Schema: @karaoke-cms/module-blog/schema → blogSchema
| Field | Type | Required | Default | Auto-set | Description |
|---|---|---|---|---|---|
title | string | Yes | — | No | Post title. Shown in browser tab, list, and post heading. |
publish | boolean | No | false | No | true to include in production builds. Posts with publish: false or no publish key are vault-only. |
date | string (ISO 8601) | No | — | No | Publication date. Used for sorting and RSS. Coerced to Date. |
author | string | string[] | No | — | No | Author name or list of names. |
description | string | No | — | Yes | Short summary. Used in RSS, OG tags, and post cards. |
tags | string[] | No | — | Yes | Tag list. Aggregated into the tags index. |
reading_time | number | No | — | Yes | Estimated reading time in minutes. |
related | string[] | No | — | Yes | Slugs of related posts, computed from semantic similarity. |
featured | boolean | No | false | No | When true, renders the post as a full-width hero on the list page. |
featured_image | string | No | — | No | Path to the hero image (relative to vault root or absolute URL). |
comments | boolean | No | — (uses module default) | No | Override the module-level comments default for this post. |
Example
---
title: "My Post"
publish: true
date: 2026-03-15
author: "Alice"
description: "A short summary of the post."
tags: [astro, obsidian]
reading_time: 4
featured: false
featured_image: "assets/my-image.png"
comments: true
---
Docs pages
Schema: @karaoke-cms/module-docs/schema → docsSchema
| Field | Type | Required | Default | Auto-set | Description |
|---|---|---|---|---|---|
title | string | Yes | — | No | Page title. Shown in browser tab, sidebar, and page heading. |
publish | boolean | No | false | No | true to include in production builds. |
date | string (ISO 8601) | No | — | No | Last-updated date. Coerced to Date. |
author | string | string[] | No | — | No | Author name or list of names. |
description | string | No | — | Yes | Short summary. Used in OG tags. |
tags | string[] | No | — | Yes | Tag list. Included in the cross-collection tags index. |
reading_time | number | No | — | Yes | Estimated reading time in minutes. |
related | string[] | No | — | Yes | Slugs of related docs pages. |
featured_image | string | No | — | No | Path to the hero image. |
comments | boolean | No | — (uses module default) | No | Override the module-level comments default for this page. |
Notes
- Docs pages do not have a
featuredfield — that is blog-only. - Sidebar ordering is controlled by the filesystem (alphabetical) or by the
weightfield on theDocsSectionconfig, not by per-page frontmatter.
Example
---
title: "Getting Started"
publish: true
description: "Install karaoke-cms and publish your first post."
tags: [setup, quickstart]
reading_time: 6
comments: false
---