独学者Fossa

独学していることなど

Hugo sectionPagesMenu

Hugo
Hugo

使用環境

Name Version
Hugo v0.133.1-extended

前書き

以前、HugoにあるsectionPagesMenuが理解できなくて、ずっと使わずじまいでした。

ようやく理解できたので、書き留めておきます。

前提

contentディレクトリの中は、下記の通りです。

├── 10.md
├── 100
│   ├── 1.md
│   └── _index.md
├── 200
├── 300
├── 400
├── 500
├── 600
├── 700
└── 800

値の違いは、下記のコードで確認しました。

<pre>
  {{ debug.Dump site.Menus }}
</pre>

本題

sectionPagesMenu: "main"

  {
  "main": [
    {
      "Identifier": "100",

上記のように、セクション(ディレクトリ)名が、"Identifier"に自動的に付けられます。

100/_index.mdの中身は、下記の通りです。

---
title: "北海道地方"
weight: 100
---

自動的に"Identifier"が生成されるので、記入しなくても良いみたいです。

"Identifier"がセクション(ディレクトリ)名と同じではない場合は、sectionPagesMenuを使うメリットは無いかもしれません。

セクションだけ自動的に生成されるので、セクション以外は、手作業で記述する必要があると言えるのかもしれません。

例えば、100/1.mdだと、下記のように、menu.main.parentを書かないと、site.Menusには表示されません。

---
title: "北海道"
weight: 101
menu:
  main:
    parent: 100
---

後書き

fossa-hobby.hatenablog.com

私のブログを読み直すと、過去にカテゴリーを使う方法を書いていました。

site.Menusを使わず、セクションやページの情報を頼りに、連想配列を新たに作成して、ナビゲーションメニューを作成する方法も試しました。

色々試行錯誤して、自分にあった方法で作成するしかないのかな?