HUGO ja 非公式

  • ニュース
  • ドキュメント
  • テーマ
  • コミュニティ
  • GitHub
gohugoio Star づけ
  暫定公開中 2024/09/16 (94d7f576a 対応, 2024/09/15)
  • Hugo について
    • 本節
    • Introduction
    • Hugo の機能
    • Privacy
    • セキュリティ
    • ライセンス
  • インストール
    • 本節
    • macOS
    • Linux
    • Windows
    • BSD
  • はじめよう
    • 本節
    • クイックスタート
    • ディレクトリ構造
    • 基本操作
    • 設定
    • Configure markup
    • 用語集
    • 本書以外の学習リソース
  • クイックリファレンス
    • 本節
    • Emojis
    • Functions
    • Methods
    • Page collections
  • コンテント管理
    • 本節
    • コンテントの構成
    • ページバンドル
    • コンテントフォーマット
    • フロントマター
    • ビルドオプション
    • ページリソース
    • イメージ処理
    • ショートコード
    • 関連コンテント
    • Sections
    • Content types
    • アーキタイプ
    • 分類
    • Summaries
    • Links and cross references
    • URL 管理
    • メニュー
    • コメント
    • マルチ言語
    • Markdown attributes
    • シンタックスハイライト
    • Diagrams
    • Mathematics
    • Data sources
    • Content adapters
  • テンプレート
    • 本節
    • はじめに
    • Template types
    • Lookup order
    • 基本テンプレート
    • Home templates
    • Single templates
    • Section templates
    • Taxonomy templates
    • Term templates
    • 部分テンプレート
    • コンテントビューテンプレート
    • ショートコードテンプレート
    • サイトマップテンプレート
    • RSS テンプレート
    • 404 テンプレート
    • robots.txt templates
    • メニュー
    • ページネーション
    • Embedded templates
    • Custom output formats
  • 関数
    • 本節
    • cast
    • collections
    • compare
    • crypto
    • css
    • data
    • debug
    • diagrams
    • encoding
    • fmt
    • global
    • go template
    • hash
    • hugo
    • images
    • inflect
    • js
    • lang
    • math
    • openapi3
    • os
    • partials
    • path
    • reflect
    • resources
    • safe
    • strings
    • templates
    • time
    • transform
    • urls
  • メソッド
    • 本節
    • Duration
    • Menu
    • Menu entry
    • Page
    • Pager
    • Pages
    • Resource
    • Shortcode
    • Site
    • Taxonomy
    • Time
  • レンダーフック
    • 本節
    • Introduction
    • Blockquotes
    • Code blocks
    • Headings
    • Images
    • Links
    • Passthrough
    • Tables
  • Hugo モジュール
    • In this section
    • Configure Hugo modules
    • Use Hugo Modules
    • Theme components
  • Hugo パイプ
    • 本節
    • Introduction
    • Transpile Sass to CSS
    • PostCSS
    • PostProcess
    • JavaScript building
    • Babel
    • Asset minification
    • Concatenating assets
    • Fingerprinting and SRI hashing
    • Resource from string
    • Resource from template
  • CLI
  • トラブルシューティング
    • 本節
    • Logging
    • Inspection
    • Deprecation
    • Performance
    • FAQs
  • 開発ツール
    • 本節
    • Editor plugins
    • Front-ends
    • 検索
    • Migrations
    • Other projects
  • ホスティングと開発
    • 本節
    • Hugo Deploy
    • Deploy with Rclone
    • Deploy with Rsync
    • Host on 21YunBox
    • Host on AWS Amplify
    • Host on Azure Static Web Apps
    • Host on Cloudflare Pages
    • Host on Firebase
    • Host on GitHub Pages
    • Host on GitLab Pages
    • Host on KeyCDN
    • Host on Netlify
    • Host on Render
  • 貢献
    • 本節
    • Development
    • ドキュメント
    • Themes
  • メンテナンス
コンテント管理

分類

Hugo ではユーザー定義の分類生成をサポートします。

分類とは何か?

Hugo では、分類 (taxonomy) と呼ぶコンテントのグループ分けをユーザー定義可能とする機能をサポートしています。 分類はコンテント間の論理的な関連を示す区分けと言えます。

用語の定義

分類 (taxonomy)
コンテントを区分けするために用いられるグループのこと。
対象語 (term)
分類の中で用いられるキーとなる語のこと。
値 (value)
分類語に割り当てられたコンテントの集合のこと。

分類の例: 映画のウェブサイト

ここで映画に関するウェブサイトを作り出すものとします。 以下のような分類を含めたいと考えるかもしれません。

  • Actors (俳優)
  • Directors (監督)
  • Studios (映画スタジオ)
  • Genre (ジャンル)
  • Year (制作年)
  • Awards (受賞歴)

Then, in each of the movies, you would specify terms for each of these taxonomies (i.e., in the front matter of each of your movie content files). From these terms, Hugo would automatically create pages for each Actor, Director, Studio, Genre, Year, and Award, with each listing all of the Movies that matched that specific Actor, Director, Studio, Genre, Year, and Award.

映画の分類構成

To continue with the example of a movie site, the following demonstrates content relationships from the perspective of the taxonomy:

Actor                    <- 分類
    Bruce Willis         <- 分類語
        The Sixth Sense  <- 値
        Unbreakable      <- 値
        Moonrise Kingdom <- 値
    Samuel L. Jackson    <- 分類語
        Unbreakable      <- 値
        The Avengers     <- 値
        xXx              <- 値

From the perspective of the content, the relationships would appear differently, although the data and labels used are the same:

Unbreakable                 <- Value
    Actors                  <- Taxonomy
        Bruce Willis        <- Term
        Samuel L. Jackson   <- Term
    Director                <- Taxonomy
        M. Night Shyamalan  <- Term
    ...
Moonrise Kingdom            <- Value
    Actors                  <- Taxonomy
        Bruce Willis        <- Term
        Bill Murray         <- Term
    Director                <- Taxonomy
        Wes Anderson        <- Term
    ...

Default taxonomies

Hugo natively supports taxonomies.

Without adding a single line to your site configuration file, Hugo will automatically create taxonomies for tags and categories. That would be the same as manually configuring your taxonomies as below:

hugo.
     
taxonomies:
  category: categories
  tag: tags
[taxonomies]
  category = 'categories'
  tag = 'tags'
{
   "taxonomies": {
      "category": "categories",
      "tag": "tags"
   }
}

If you do not want Hugo to create any taxonomies, set disableKinds in your site configuration to the following:

hugo.
     
disableKinds:
- taxonomy
- term
disableKinds = ['taxonomy', 'term']
{
   "disableKinds": [
      "taxonomy",
      "term"
   ]
}

Kind Description Example
home The landing page for the home page /index.html
page The landing page for a given page my-post page (/posts/my-post/index.html)
section The landing page of a given section posts section (/posts/index.html)
taxonomy The landing page for a taxonomy tags taxonomy (/tags/index.html)
term The landing page for one taxonomy’s term term awesome in tags taxonomy (/tags/awesome/index.html)

Four other page kinds unrelated to content are robotsTXT, RSS, sitemap, and 404. Although primarily for internal use, you can specify the name when disabling one or more page kinds on your site. For example:

hugo.
     
disableKinds:
- robotsTXT
- "404"
disableKinds = ['robotsTXT', '404']
{
   "disableKinds": [
      "robotsTXT",
      "404"
   ]
}

Default destinations

When taxonomies are used—and taxonomy templates are provided—Hugo will automatically create both a page listing all the taxonomy’s terms and individual pages with lists of content associated with each term. For example, a categories taxonomy declared in your configuration and used in your content front matter will create the following pages:

  • A single page at example.com/categories/ that lists all the terms within the taxonomy
  • Individual taxonomy list pages (e.g., /categories/development/) for each of the terms that shows a listing of all pages marked as part of that taxonomy within any content file’s front matter

分類の設定

Custom taxonomies other than the defaults must be defined in your site configuration before they can be used throughout the site. You need to provide both the plural and singular labels for each taxonomy. For example, singular key = "plural value" for TOML and singular key: "plural value" for YAML.

Example: adding a custom taxonomy named “series”

While adding custom taxonomies, you need to put in the default taxonomies too, if you want to keep them.

hugo.
     
taxonomies:
  category: categories
  series: series
  tag: tags
[taxonomies]
  category = 'categories'
  series = 'series'
  tag = 'tags'
{
   "taxonomies": {
      "category": "categories",
      "series": "series",
      "tag": "tags"
   }
}

Example: removing default taxonomies

If you want to have just the default tags taxonomy, and remove the categories taxonomy for your site, you can do so by modifying the taxonomies value in your site configuration.

hugo.
     
taxonomies:
  tag: tags
[taxonomies]
  tag = 'tags'
{
   "taxonomies": {
      "tag": "tags"
   }
}

If you want to disable all taxonomies altogether, see the use of disableKinds in Hugo Taxonomy Defaults.

You can add content and front matter to your taxonomy list and taxonomy terms pages. See Content Organization for more information on how to add an _index.md for this purpose.

Assign terms to content

To assign one or more terms to a page, create a front matter field using the plural name of the taxonomy, then add terms to the corresponding array. For example:

content/example.md
     
---
categories:
- Category A
- Category B
tags:
- Tag A
- Tag B
title: Example
---
+++
categories = ['Category A', 'Category B']
tags = ['Tag A', 'Tag B']
title = 'Example'
+++
{
   "categories": [
      "Category A",
      "Category B"
   ],
   "tags": [
      "Tag A",
      "Tag B"
   ],
   "title": "Example"
}

分類の並び

A content file can assign weight for each of its associate taxonomies. Taxonomic weight can be used for sorting or ordering content in taxonomy templates and is declared in a content file’s front matter. The convention for declaring taxonomic weight is taxonomyname_weight.

The following show a piece of content that has a weight of 22, which can be used for ordering purposes when rendering the pages assigned to the “a”, “b” and “c” values of the tags taxonomy. It has also been assigned the weight of 44 when rendering the “d” category page.

Example: taxonomic weight

     
categories:
- d
categories_weight: 44
tags:
- a
- b
- c
tags_weight: 22
title: foo
categories = ['d']
categories_weight = 44
tags = ['a', 'b', 'c']
tags_weight = 22
title = 'foo'
{
   "categories": [
      "d"
   ],
   "categories_weight": 44,
   "tags": [
      "a",
      "b",
      "c"
   ],
   "tags_weight": 22,
   "title": "foo"
}

By using taxonomic weight, the same piece of content can appear in different positions in different taxonomies.

Add custom metadata to a taxonomy or term

If you need to add custom metadata to your taxonomy terms, you will need to create a page for that term at /content/<TAXONOMY>/<TERM>/_index.md and add your metadata in its front matter. Continuing with our ‘Actors’ example, let’s say you want to add a Wikipedia page link to each actor. Your terms pages would be something like this:

content/actors/bruce-willis/_index.md
     
---
title: Bruce Willis
wikipedia: https://en.wikipedia.org/wiki/Bruce_Willis
---
+++
title = 'Bruce Willis'
wikipedia = 'https://en.wikipedia.org/wiki/Bruce_Willis'
+++
{
   "title": "Bruce Willis",
   "wikipedia": "https://en.wikipedia.org/wiki/Bruce_Willis"
}

関連項目

  • アーキタイプ
  • フロントマター
  • ビルドオプション

このページ内

  • 分類とは何か?
  • 分類の例: 映画のウェブサイト
  • Default taxonomies
  • 分類の設定
  • Assign terms to content
  • 分類の並び
  • Add custom metadata to a taxonomy or term
最終更新日付: 0001/01/01
ページの変更
Hugo 作者より
Hugo Logo
  • Issue 報告
  • ヘルプ
  • @GoHugoIO
  • @spf13
  • @bepsays
 

Hugo Sponsors

Route4Me
Your Company?
 

The Hugo logos are copyright © Steve Francia 2013–2024.

The Hugo Gopher is based on an original work by Renée French.

  • ニュース
  • ドキュメント
  • テーマ
  • コミュニティ
  • GitHub
  • Hugo について
  • インストール
  • はじめよう
  • クイックリファレンス
  • コンテント管理
  • テンプレート
  • 関数
  • メソッド
  • レンダーフック
  • Hugo モジュール
  • Hugo パイプ
  • CLI
  • トラブルシューティング
  • 開発ツール
  • ホスティングと開発
  • 貢献
  • メンテナンス