附加页面
Hextra 提供一些需要单独启用的附加页面:术语表、归档页、演讲与系列。
术语表
数据源文件
术语定义集中存储在每种支持语言的 termbase.yaml 数据文件中。
- termbase.yaml
- termbase.yaml
- termbase.yaml
每个 YAML 数据文件包含一组术语条目。每个条目包括:
term:术语或短语的完整名称。definition:对术语的简要解释或描述。abbr(可选):术语常用的缩写或首字母缩写。
- term: seo
abbr: SEO
definition: "搜索引擎优化——提高网页在搜索引擎中的可见度"
- term: "静态网站生成器"
definition: "将文本输入处理为静态网页的生成引擎"术语页面
要渲染词汇表索引页面(列出所有已定义的术语及其说明和缩写),
必须为每种受支持的语言定义一个对应的语言专用词汇表内容文件。
请在文件名中使用语言代码后缀,例如:content/glossary/_index.zh-cn.md。
---
title: 术语表
layout: glossary
---示例词汇表页面可在 术语表 查看。
归档页
archives 布局是一个通用的分组索引:它可以将任意页面集合渲染为按年份分组的时间线(或平面列表),并且默认归档页面自身所属的内容分区。它支撑内置的归档页面,也支撑下面介绍的演讲和系列两种页面类型。
要创建指向其他分区的独立归档页面(例如列出博客文章的 /archives 页面),请在页面 front matter 中设置 group.section:
---
title: Archives
layout: archives
toc: false
group:
section: blog
---内置示例就是如此:页面位于 content/archives/,但归档的是 blog 分区。示例归档页面可在 归档 查看。
选项
group.section: 要归档的分区。默认值是页面自身所在的分区,回退到params.archives.section(默认blog)。group.dateFormat: 列表项的日期显示格式。默认值是Jan 02,回退到params.archives.dateFormat。group.groupBy:year(默认)、month,或none以显示平面列表。术语页面(如系列)由于已按术语分组,默认值为none。
空状态文案使用 i18n 键 noResultsFound。
演讲
内容分区(如 talks)可以像归档页面一样,列表为按年份分隔的索引。
- 使用
archives布局创建内容分区的索引页:该页面默认归档其自身所在的分区,因此content/talks/_index.md--- title: Talks layout: archives toc: false ---/talks/会按年份分组显示所有演讲。无需其他配置。 - (可选)将其添加到顶部菜单:hugo.yaml
menu: main: - identifier: talks name: Talks pageRef: /talks - (可选,多语言)添加使用相同 layout 的多语言索引页,例如
content/talks/_index.ja.md。
演讲归档的文件结构如下:
- _index.md
- index.md
- slides.pdf
- css-architecture.md
- index.md
- cover.png
每篇演讲可以是一个独立的 Markdown 文件(css-architecture.md),也可以是一个页面包目录:一个 index.md 与其图片和资源(如幻灯片或封面图)放在同一子目录(open-source-communities/、hugo-theming/)。只有 _index.md 带有 layout: archives front matter:
---
title: Theming Hugo Sites with Tailwind CSS
date: 2025-11-03
tags:
- Hugo
- Tailwind CSS
---示例演讲归档可在 演讲 查看。
系列
系列将相关文章(通常是博客文章)按名称分组。系列是一个分类术语:所有带有相同 series 术语的文章会自动分组到 /series/<名称>/ 页面。系列名称即为分组,因此该页面会将这些文章列在一起,不再做额外的分组。
- 配置
series分类:设置hugo.yamltaxonomies: series: seriestaxonomies会替换 Hugo 的默认分类。要保留现有分类,请一并列出:hugo.yamltaxonomies: tag: tags category: categories series: series - 在每篇属于该系列的文章 front matter 中添加术语:通过列出多个术语,一篇文章可以属于多个系列。content/blog/part-1/index.md
--- title: "Demo Series Part 1" date: 2024-09-12 series: - demo-series ---seriesfront matter 还会在文章页面生成 Open Graph 的og:see_also链接。 - (可选)创建术语索引页以设置系列标题并启用
archives布局:即使没有此页面,content/series/demo-series/_index.md--- title: Demo Series layout: archives toc: false ---/series/demo-series/仍会列出该系列的所有文章。
系列的文件结构如下:
- index.md
- diagram.png
- part-2.md
- _index.md
系列文章仍保留在它们正常的分区(此例中为 blog)中。content/series/ 目录并不是文章的存放位置 — 它是 Hugo 的分类内容目录,仅用于自定义自动生成的 /series/<名称>/ 术语页面(标题、archives 布局)。该目录是可选的:即使没有它,/series/<名称>/ 也会生成并将系列文章列在系列名称下。
与演讲文章类似,系列文章可以是独立的 Markdown 文件,也可以是页面包目录(例如 part-1/),将文章与其图片和资源放在一起。
在菜单中添加系列下拉菜单
要在顶部导航中添加列出所有系列的下拉菜单,请添加一个 type: series 的菜单项:
menu:
main:
- identifier: series
name: Series
params:
type: series下拉菜单会自动列出每个系列术语。要自定义某个系列显示的标签,请在其术语索引页(content/series/<名称>/_index.md)中设置标题。
示例系列归档可在 示例系列 查看。