Hugoサイトにタグページを追加した方法

puzzle creative cBI5VnqjXo8 unsplash scaled
Genxのアバター
Share This:

最近、自分のHugo製ブログに専用のタグページを追加することにした。ここでは、その手順をまとめている。

1. layouts/taxonomyにterms.htmlを作成

最初に、全タグとそのカウントを一覧表示するテンプレートが必要だったため、

layouts/taxonomy/terms.html

というファイルを作成し、以下のコードを記述した。

{{ define "main" }}
<main>
  <ul>
    {{ range .Data.Terms }}
      <li>
          {{ $key := .Page.Title | replaceRE "[- ]" "_" }}
          <a href="{{ .Page.Permalink }}">{{ i18n $key | default .Page.Title }}</a> ({{ .Count }})
      </li>
    {{ end }}
  </ul>
</main>
{{ end }}

このテンプレートはHugoのテンプレート言語を用いて、すべてのタグ名・パーマリンク・カウントを表示する。

Tip: baseof.html が用意されていれば、この”main”ブロックがあなたのサイト構造に正しく挿入される。

2. メニューへタグページを追加(hugo.toml)

タグページをナビゲーションで見つけやすくするため、サイトの設定ファイル hugo.toml に以下を追加した。

[[menu.main]]
name = "Tags"
url = "/tags/"
weight = 8

weight の値を調整することでメニュー内の表示順が変わる。

3. tagsがタクソノミーとして定義されているか確認

タグページが正常に生成されるように、 hugo.toml でタクソノミー(分類)が正しく定義されているか確認しよう。

[taxonomies]
  tag = "tags"
  category = "categories"

デフォルト設定を使っていれば既に定義されているが、カスタマイズしている場合は特に確認するように。

4. 各記事のFront Matterにタグを指定

各記事のFront Matterに tags を含めているか再度確認すること。

TOML形式の例:

tags = ["Hugo", "Static Site", "Tutorial"]

これがないとHugoがタグ一覧を生成しない。

5. (オプション)タグ個別ページのカスタマイズ

各タグ(例: /tags/hugo/)のページに独自のデザインを適用したい場合は、

layouts/taxonomy/tag.htmlやlayouts/_default/terms.html

を編集・作成しよう。

必須ではないが、サイトのブランディングを強調できる。

6. (オプション)テストとビルド

設定後、hugo server を実行してローカルで確認しよう。 /tags/ ページに期待通りタグ一覧が表示され、メニューにも「Tags」が追加されているか確認すること。

以上で終了だ。この手順を踏めば、Hugoサイト上にタグページが表示され、訪問者が投稿をタグから簡単に発見できるようになる。もしタクソノミー定義や記事のタグ追加を忘れていると、タグページが表示されない・空になることがあるため、注意すること。

関連記事

Genx

in

Comment

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

three × 4 =

Webmention: Have you posted a response to this article? Let me know the URL: