Page parameters
The full front matter table — every page key the theme actually reads, grouped by sidebar, shell, search, output, page end, Book, landing and release pages.
This page is the complete table of page-level parameters, listing only the keys
the OINK theme reads. Hugo’s own front matter fields (slug, url, build,
sitemap, expiryDate and the rest) work as usual; their meaning is in the
Hugo documentation. Site
parameters (params.* in hugo.yml) are in
Configuration.
How to read the tables
Precedence, highest first:
- The page’s own front matter;
- The nearest
cascade (when several cascade layers set the same key, the one closest to the page wins);
- The site parameter in
hugo.yml.
Keys whose Default column says “site value” fall back to the site parameter of
the same name when unset.
Page keys are written at the top level of the front matter, and the key name is
the site key with its ui. prefix dropped: the site’s
params.ui.section_index is the page’s section_index. Front matter never
carries a ui: block; the keys sit at the top level. A ui: block written
there is not read and not reported, so check the key name against this page
when a setting seems to have no effect.
---
title: Compatibility matrix
weight: 40
page_width: wide
footer_style: slim
image_zoom: true
section_index: list
---
Inside a cascade the key names are unchanged, just one level deeper:
cascade:
pager: false
section_index: list
An invalid value does not stop the build. The theme warns — naming the key, the
value it got and the fallback it used — and renders the page with the default in
the table, so one typo degrades one setting instead of serving HTTP 500 on every
URL under hugo server. It still never ships: every publishing gate builds with
--panicOnWarning, which turns that warning back into a hard failure where it
counts.
A few keys do stop the build, and their rows say so. They are the ones where
carrying on would publish something wrong rather than merely plain: an
incomplete upstream attribution (a partial notice reads exactly like a complete
one), translation_notice, the release facts, landing sections, and any
reference that cannot resolve.
Basics
title
, string
, default—
- Page heading, browser title, search result title. Required on every page
linkTitle
, string
, defaulttitle
- Short name in the sidebar, breadcrumbs, pager and cards
description
, string
, default—
- One-sentence summary: section cards, search snippet,
meta description; rendered as a standfirst above the body on blog pages
weight
, integer
, default0
- Ordering among siblings; use multiples of 10.
0 (unset) sorts after every page that has a weight — see Organizing content
draft
, boolean
, defaultfalse
- A draft never reaches the build output;
hugo server -D previews it — see Writing pages
date
, date
, default—
- Blog date, and the sort key for release pages; a future date is excluded by default
lastmod
, date
, defaultGit commit time
- The page-end “last modified”; not needed by hand when the site enables
enableGitInfo
aliases
, string array
, default—
- Redirects an old path to this page; for page migration, not for everyday navigation
type
, string
, defaulttop-level directory name
- Decides the template and the shell:
docs, book, blog, swagger — see Organizing content
layout
, string
, default—
- Picks a layout for one page:
landing, releases
cascade
, map
, default—
- Pushes the keys below down the whole subtree
Sidebar and navigation
The guide is Organizing content.
icon
, Font Awesome class pair
, default—
- Icon in the sidebar, section cards and search results, e.g.
fa-solid fa-rocket
toc_hide
, boolean
, defaultfalse
- Absent from the sidebar tree and from the pager sequence
hide_summary
, boolean
, defaultfalse
- Absent from the section index
toc_root
, boolean
, defaultfalse
- When the sidebar root is the site home, excludes this whole top-level section from the tree and the pager sequence
manual_link
, URL
, default—
- The sidebar and section index row points elsewhere
manual_link_relref
, content reference
, default—
- The same, resolved with
relref; a missing target fails the build
manual_link_title
, string
, defaulttitle
- Hover title for the manual link
manual_link_target
, string
, default—
- For example
_blank; the theme adds noopener
no_list
, boolean
, defaultfalse
- The section index generates no child list
simple_list
, boolean
, defaultfalse
- The child index renders as a compact bulleted list
section_index
, list / cards
, defaultsite value (list)
- Style of the child index. An invalid value warns and falls back
section_index_columns
, integer
, default2
- Column count in the card style
notoc
, boolean
, defaultfalse
- Hides the right-hand page outline
navbar_enabled
, boolean
, defaultsite value (true)
- Whether this page renders the navbar
navbar_autohide
, boolean
, defaultsite value (false)
- The navbar hides itself on pointer devices
Page shell
Site-level defaults and what they do are in
Layouts and page types.
page_width
, normal / wide / full
, defaultnormal
- Width of the content column. An invalid value warns and falls back
reading_width
, slim / normal / wide
, defaultnormal
- Reading measure on Book pages; applies to
type: book only
body_class
, string
, default—
- A class appended to
<body> for the site’s own CSS
reading_time
, boolean
, defaultsite value
- Whether this page shows a reading time;
false hides it
keyboard_nav
, boolean
, defaultsite value (true)
- Single-key keyboard navigation — see Keyboard navigation. A non-boolean warns and falls back
lastmod_commit
, subject / hash / none
, defaultsubject
- How the commit is shown after “last modified”. An invalid value warns and falls back
Search
The guide is Search.
search_keywords
, string or string array
, default—
- Extra search terms, including synonyms and other languages
search_boost
, positive number
, default1.0
- Ranking multiplier; the final score is the text match score times this value. A non-numeric, non-finite, zero or negative value warns and falls back to
1.0
search_exclude
, boolean
, defaultfalse
- Keeps the page out of the local index
Output formats
The guides are AI-agent support (.md and
llms.txt) and Print.
outputs
, string array
, defaultsite outputs
- Which output formats this page generates;
[HTML] stops the .md twin
no_print
, boolean
, defaultfalse
- Excluded from the whole-chapter and whole-book print aggregate
Page end: comments, feedback and provenance
The order is fixed as feedback → provenance → pager → comments; see
Writing pages.
feedback
, boolean or map
, defaultsite params.ui.feedback (off)
- The map form takes
enable and reasons. Anything else warns and falls back
annotation
, boolean
, defaultsite params.ui.annotation (on)
- The “last modified / provenance” block at the page end. Only a boolean is accepted; anything else warns and falls back
translation_notice
, language code or false
, defaultsite params.ui.translation_notice (off)
- The language code of the authoritative version, so a translation can say so and link back; write
false on a page authored natively in this language
Upstream attribution
When a page is derived from material elsewhere, upstream_link declares the
source and the page-end provenance line gives the work, the copyright holder,
the licence and a link to the full notice. This family resolves site parameters
→ the data/upstreams entry named by upstream_source → this page’s front
matter, so the most specific declaration wins.
upstream_link is read from front matter only (a cascade counts, site
parameters do not) — a site-wide value would make every page claim the same
source. Any companion key without upstream_link fails the build.
upstream_link
, URL
, default—
- The address of the material this page is derived from. An empty string opts out of an inherited cascade value
upstream_name
, string
, default—
- The upstream work, as the attribution names it. Required once
upstream_link is set
upstream_copyright
, string
, default—
- The copyright notice, retained as upstream wrote it. Required
upstream_license
, SPDX identifier
, default—
- Must be found in
data/licenses, or the build fails. Required
upstream_notice
, site path or URL
, default—
- The page carrying the full notice (licence text, warranty disclaimer, upstream NOTICE, snapshot pin). Required
upstream_ref
, string
, default—
- The tag or commit the snapshot pins, shown in parentheses after the work
upstream_source
, string
, defaultsite parameter
- The entry name in
data/upstreams, for upstream facts shared by many pages; a missing entry fails the build
upstream_modified
, boolean
, defaultfalse
- Adds a “modified downstream” line; carries a “view history” link when the site has repository information. A non-boolean fails the build
Missing any one of the four required keys (upstream_name,
upstream_copyright, upstream_license, upstream_notice) fails the build: a
partial attribution is worse than an obvious omission. The theme ships an SPDX
table at data/licenses.yaml, and a site adds to or overrides it with a file of
the same name.
Image zoom
image_zoom
, boolean
, defaultsite value (false)
- Whether images on this page open full size — see Images. A non-boolean warns and falls back
Blog posts
The guide is Blog posts.
author
, string
, default—
- Post byline; inline Markdown is allowed. Ignored on a page that has
authors
authors
, string array
, default—
- Terms of the
authors taxonomy, in byline order — see Authors and bylines. Needs author: authors under taxonomies:
series
, string array
, default—
- Terms of the
series taxonomy. The strip above the body uses the first one — see Series
series_weight
, integer
, default—
- Place in the series. Weighted members come first in ascending order, the rest follow by ascending date
categories
, string array
, default—
- Categories, likewise
images
, string array
, default—
- The first entry becomes the post’s featured image and share card; put it in a section
_index.md cascade for a section-wide default, and images: [] means no featured image
featured_image
, none / banner / wash
, defaultsite value (none)
- How this article renders its own featured image. An invalid value warns and falls back
blog_index
, list / cards
, defaultsite value (list)
- Written on a blog root, the list form for that section. An invalid value warns and falls back
share
, string array or false
, defaultsite params.ui.share (empty)
- The page-end share targets, replacing any inherited list;
false opts this page out — see Share. An unknown target warns and is dropped
summary
, string
, default—
- Fallback excerpt for post rows on tag and category pages;
description wins
Book
The guide is Books. A whole book sets type: book through
a section cascade.
book_number
, string
, default—
- Chapter number, shown before the page title and the sidebar entry
book_status
, draft
, default—
- Marks a draft chapter: flagged in the sidebar and contents, and left out of the indexes by default
book_draft_banner
, boolean
, defaultsite value (false)
- Adds a banner at the top of a draft chapter. A non-boolean warns and falls back
Landing
The guide is Home and landing pages. Any page with
layout: landing uses the landing shell.
landing
, string
, default—
- Data is taken from
data/landing/<key>/<language>.yaml
sections
, array
, default—
- Section definitions inlined in front matter, taking precedence over
landing. Anything but an array fails the build
Release pages
The guide is Releases and downloads. A section with
layout: releases ignores weight and sorts by release date and SemVer,
newest first.
release
, string or map
, default—
- The release facts. The string form is
https://github.com/<owner>/<repo>/releases/tag/<tag>; the map form takes product, version, repo, tag, date, prev and checksums, of which version and repo are required, and an unknown key or a wrong type fails the build
release_products
, string or string array
, default—
- Restricts the release list to these products. An invalid filter fails the build
release_group_by_product
, boolean
, defaultfalse
- Groups by product; with it on, every selected post must set
release.product