Frontmatter

Every content file begins with a YAML frontmatter block delimited by ---. The required and optional fields differ by content type.

Blog posts (content/blog/)

FieldRequiredDescription
titleyesPost title
slugyesURL segment — must be unique across all content
authoryesAuthor name — matched against [[authors]] in aphid.toml to resolve link and profile image
createdyesPublication date (YYYY-MM-DD)
updatednoLast-edited date
imagenoPath or URL to a hero image, rendered above the post body and shown in blog listings
descriptionnoShort summary shown in blog listings (home page, blog index)
tagsnoList of tag strings
draftnoWhen true, the post is excluded from the build entirely — see Drafts
---
title: Hello World
slug: hello-world
author: Alice
created: 2026-01-01
tags:
  - rust
  - tutorial
---

Blog posts live at /blog/<slug>/.

Wiki pages (content/wiki/)

All fields are optional. The page title falls back to the filename stem if title is omitted.

FieldRequiredDescription
titlenoPage title
categorynoCategory name — pages are grouped by category on the wiki index
creatednoCreation date
updatednoLast-edited date
tagsnoList of tag strings
draftnoWhen true, the page is excluded from the build entirely — see Drafts
---
title: Glossary
category: Reference
tags:
  - reference
---

When category is set, the wiki index groups pages under category headings. Pages without a category fall into a catch-all group named by wiki_default_category (default "Other"), which sorts last on the index.

Wiki pages live at /wiki/<stem>/ regardless of category — the category is purely for display grouping.

Standalone pages (content/pages/)

FieldRequiredDescription
titleyesPage title, shown in nav
ordernoSort position in the nav (lower = earlier)
draftnoWhen true, the page is excluded from the build entirely (and dropped from the nav) — see Drafts
---
title: About
order: 1
---

Standalone pages live at /<stem>/.

Drafts

Setting draft: true on any content file excludes it from the build:

  • No HTML page is rendered for it.
  • It does not appear in the blog index, tag pages, RSS/Atom feeds, sitemap, or — for standalone pages — the site nav.
  • It is not addressable via [[wiki-link]]. Wiki-links pointing at a draft fail to resolve as if the file did not exist on disk: aphid build reports a broken link error; aphid serve warns and renders a placeholder.
---
title: Half-finished thoughts
slug: wip
author: Alice
created: 2026-05-01
draft: true
---

Drafts apply in both serve and build modes — there is no preview override. To publish a draft, change draft: true to false (or remove the field).

See also: Configuration, Wiki Links.