タクソノミーとターム
Hugo では、多くのブログツールや CMS ツールと同様に、各ページに「タグ」や「カテゴリ」といった付加情報を付けてグルーピング(分類)することができます。 このグルーピング(分類)のことを タクソノミー (taxonomy) と呼んでいます。
- タクソノミー (taxonomy)
- グルーピング(分類)のための項目名。 例えば、「タグ」や「カテゴリ」といった分類名自体がタクソノミーです。 Hugo は、デフォルトで tags と categories というタクソノミーが定義されています。
- ターム (term)
- タクソノミーに割り当てる具体的な値。 例えば、あるページのタグとして、「経済」と「日本」という値を割り当てたとすると、「経済」と「日本」のことをタームと呼びます。 タグの一覧ページで表示される個々のタグ名がタームです。
コンテンツ(ページ)にタクソノミー・タームを割り当てる
コンテンツにタクソノミーを割り当てるには、記事先頭のフロントマター部分に、タクソノミー名とそこに割り当てるターム配列を記述します。
次の例では、tags:
と categories:
というところでタクソノミーの設定を行なっています。
Hugo のデフォルトのタクソノミーとして、tags
と categories
が用意されています。
上記ではそれぞれのタクソノミーに タグ1
や カテゴリ1
といったタームを設定しています。
それぞれのタクソノミーの使い方は自由ですが、 どのタクソノミーにも複数のタームを割り当てることができます。
逆に、「1 種類のタクソノミーには 1 つのタームしか割り当てられない」という設定はできません。
そのような場合は、単純にフロントマターで categories
に割り当てるタームを 1 つだけにする、といった運用でカバーします(それよりは、セクションの機能(ディレクトリ階層)で分けた方がよいですね)。
参考までに、1 つのページに複数のカテゴリを割り当ててしまった場合にエラー表示する方法を こちらで紹介しています。
タクソノミータームの一覧ページ
コンテンツ(記事ページ)に何らかのタクソノミーを割り当てると、タクソノミーごとのターム一覧ページが自動的に生成されます。
例えば、tags
タクソノミーに含まれているタームの一覧ページ(タグの一覧ページ)は、下記のようなアドレスでアクセスできるようになります。
https://example.com/tags/
同様に、categories
タクソノミーに含まれているタームの一覧ページ(カテゴリの一覧ページ)は、下記のようなアドレスでアクセスできます。
https://example.com/categories/
tags.md
や categories.md
という名前のファイルを作成してしまうと、上記のようなタームの一覧ページにはアクセスできなくなってしまうということを示しています。
このあたりは URL をシンプルに保つためのトレードオフですね。上記のような一覧ページ(HTML ファイル)は Hugo の仕組みで自動的に生成されますが、デフォルトでは空っぽ(真っ白)の HTML ページが出力されるだけです。 タームの一覧ページを正しくレンダリングするには、専用のテンプレートファイルを作成しておく必要があります。 詳しくは、下記のページを参照してください。