Typed frontmatter with a four-line schema
Frontmatter is convenient until a typo bites. You write titel: instead of
title:, the field silently becomes empty, and the bug surfaces as a blank
heading in production. Darkmown closes that gap with an optional schema — one
file at the collection root, frontmatter-shaped, written exactly like the
frontmatter it checks:
---
title: string
date: date
description: string
excerpt: string?
tags: string[]?
---
The vocabulary is small and closed on purpose: string, number, boolean,
date, and string[], with a trailing ? to make a field optional. That is
the whole DSL. An unknown type token is a compile error in the schema file
itself.
What it catches
At build time, every entry in the collection is checked against the rules. A missing required field, a value of the wrong type, or an extra field the schema never declared each fails the build — and the error names the offending entry by path and the field by name, so the fix is obvious:
Missing required field "date" (date) in /blog/example/ (collection "blog").
Validation is opt-in. No _schema.wd, no validation — the same posture as
scoped styles and the draft flag. Add the file when you want the guardrails;
leave it out while you are still sketching.