
使用環境
| 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
---
後書き
私のブログを読み直すと、過去にカテゴリーを使う方法を書いていました。
site.Menusを使わず、セクションやページの情報を頼りに、連想配列を新たに作成して、ナビゲーションメニューを作成する方法も試しました。
色々試行錯誤して、自分にあった方法で作成するしかないのかな?