# Create a new draft post (uses archetypes/posts.md)
hugo new content posts/my-post-slug.md
# Preview with drafts
hugo server -D
# Build for production
bash build.sh
Stack theme uses YAML (---) front matter. The archetype (archetypes/posts.md) provides the full template:
| Field | Required | Default | Notes |
|---|---|---|---|
title |
✅ | auto | From filename if omitted |
date |
✅ | now | ISO 8601 format |
draft |
✅ | true |
Set false to publish |
description |
— | "" |
Used in meta/Open Graph |
image |
— | placeholder | Path under static/ (e.g., /img/posts/slug-cover.png) |
tags |
— | [] |
Free-form strings |
categories |
— | [] |
Free-form strings |
series |
— | [] |
Groups posts; theme renders series nav |
keywords |
— | [] |
SEO meta keywords |
math |
— | false |
Enable KaTeX math rendering |
comments |
— | false |
Show/hide comments widget |
license |
— | false |
Show license line |
Controlled globally in hugo.toml:
[params.article]
readingTime = true
Enabled globally in hugo.toml:
[params.article]
toc = true
draft: truehugo server -Ddraft: falseGroup related posts with the series front matter field:
series: ["building-ronnieops"]
Series navigation (prev/next links, part X/Y progress) renders automatically between the article body and related-content section on posts that belong to a series. Posts within a series are sorted by date ascending.
series for multi-part tutorials (e.g., “Kubernetes RBAC Deep Dive Part 1/3”)building-ronnieops, not “Building RonnieOps”)series field in the archetype template when starting a new seriesCover images live in static/img/posts/. Reference them in front matter:
image: "/img/posts/my-post-slug-cover.png"
Until a custom cover is ready, use the placeholder:
image: "/img/posts/placeholder-cover.svg"
markdownlint-cli2 runs in CI. Configuration in .markdownlint-cli2.yaml. Disabled rules (blog-friendly):