Configuration
Everything Civet needs to know about your site lives in one file: civet.toml.
Civet is configured with a single TOML file at the root of your project. Sensible defaults mean you can publish with an empty config, then add settings as your site grows.
A complete example
# civet.toml
title = "My Site"
base_url = "https://example.com"
description = "Notes on systems and software."
language = "en"
theme = "paperleaf"
[author]
name = "Jane Doe"
email = "jane@example.com"
[build]
drafts = false
minify = true
output_dir = "public"
incremental = true
[taxonomies]
tag = "tags"
series = "series"
[permalinks]
posts = "/:year/:month/:slug/"
[[menu.main]]
name = "Home"
url = "/"
[[menu.main]]
name = "Posts"
url = "/posts/"
[[menu.main]]
name = "About"
url = "/about/"
[markup.highlight]
theme = "github-dark"
lineNos = true
Site metadata
| Key | Default | Description |
|---|---|---|
title | — | Site title, used in <title> and feeds. |
base_url | — | Canonical origin, used for absolute URLs and sitemap. |
description | "" | Short site description for SEO and OG tags. |
language | "en" | Default language code; enables i18n when set. |
theme | built-in | Name of a theme directory under themes/. |
Build options
The [build] table controls how your site is rendered.
drafts— include draft posts (defaults tofalse; the dev server always shows drafts).minify— minify HTML, CSS, and JS output.incremental— only rebuild changed pages. Keep this on.output_dir— where the built site is written.
Permalinks
Control URL structure per section with placeholders:
[permalinks]
posts = "/:year/:month/:slug/"
notes = "/notes/:slug/"
Available tokens: :year, :month, :day, :slug, :section, :filename.
Taxonomies
Define how content is grouped. Each entry maps a front-matter field to a URL prefix:
[taxonomies]
tag = "tags"
series = "series"
author = "authors"
Environment variables
A few settings can be overridden at build time, handy for CI:
$ CIVET_BASE_URL=https://staging.example.com civet build
Edit this page on GitHub · Last updated July 8, 2026