Blog-Doc has two content types: pages and posts. Both are stored as Markdown files with YAML frontmatter. The slug is the filename — there is no database.

Important note: It is strongly recommended to create and update pages and posts through the administration interface. Manually editing a page or post’s YAML frontmatter is risky and should only be done if you fully understand what you are doing. Even a single typo or formatting mistake can break Blog-Doc and cause it to stop working entirely.

All content lives in app/content/. Only published content is served by the live theme and included in the static build.

Pages vs posts

Pages Posts
Directory app/content/pages/ app/content/posts/
URL Configurable (root, hierarchy, or /pages/slug) Always /blog/{slug}
Hierarchy Up to 3 levels deep Flat
Taxonomy No Category + tags
Date field No Yes

Choose pages for structural content — About, Documentation, Contact. Choose posts for dated, categorised entries — articles, news, blog posts.

Drafts

Set status: draft to keep content out of the live site and build. The admin GUI shows drafts but the live theme and build engine skip them entirely. Omitting status defaults to draft.

Frontmatter serialization rules

The frontmatter.js module writes clean frontmatter back to disk after every save. Rules:

  • null, undefined, "", and [] values are omitted — no empty keys written
  • Strings containing :, #, ", or starting with - are quoted
  • Arrays are serialized as YAML block sequences
  • Booleans and numbers are unquoted