追加ページ
Hextra には明示的に有効化する追加ページがあります。用語集、アーカイブ、トーク、シリーズです。
用語集
データソースファイル
用語の定義は、各対応言語ごとに termbase.yaml データファイルに一元管理されています。
- termbase.yaml
- termbase.yaml
- termbase.yaml
各 YAML データファイルには、用語の一覧が含まれています。各エントリには以下が含まれます:
term:概念やフレーズの正式名称。definition:用語の簡潔な説明。abbr(任意):一般的に使用される略語や頭字語。
- term: seo
abbr: SEO
definition: "検索エンジン最適化 — ウェブページの検索エンジンでの可視性を向上させる手法"
- term: "静的サイトジェネレーター"
definition: "テキスト入力を処理して静的なウェブページを生成するソフトウェアエンジン"用語ページ
定義済みの用語、その説明、および略語を一覧表示するグロッサリーのインデックスページをレンダリングするには、
サポートされている各言語ごとに、言語固有のグロッサリー用コンテンツファイルを定義する必要があります。
ファイル名には言語コードのサフィックスを使用してください。例: content/glossary/_index.ja.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/)にまとめます。layout: archives の front matter を持つのは _index.md だけです:
---
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 Graphog: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)でタイトルを設定します。
シリーズアーカイブのサンプルページは デモシリーズ で確認できます。