本記事の概要
HugoのFrontMatterのcascadeについて説明した初心者向け記事です。
前提
Hugo+Blowfishテーマ適用済みの環境です。
なお、Windowsでの操作を想定しています。
(本記事が属するアドベントカレンダーについてもご確認ください)
cascadeとは
あるパラメーターについて、自身とその配下のページに対して特定の値で指定した時に使用する特殊なパラメーターです。
これを使うことで、サイト内のコンテンツの一部分だけ、tomlファイルと異なる値をデフォルト値にすることが可能です。
パスで考える
下記のようなサイトのURLの構成があったとして、XXX内のFrontMatterでcascadeを使用すると、XXXとその配下のXXX-1~XXX-3までに適用されます。
一方で、YYYとその配下には適用されず、toml等の指定値が使用されます。
つまり、ページごと記載しなくても良くなるので、楽になります。
my-site/
├── XXX/ # ここでcascadeを使用すると、適用対象になる。
│ ├── XXX-1 # XXXのcascadeの適用対象
│ ├── XXX-2 # XXXのcascadeの適用対象
│ └── XXX-3 # XXXのcascadeの適用対象
└── YYY/ # XXXのcascadeは適用されない
└── YYY-1 # XXXのcascadeは適用されない
cascadeの指定方法
各記事のMarkdown内の冒頭にあるFrontMatterで指定します。
下記は、markdownをtomlで記載する例(+++を使用する)場合のFrontMatterのサンプルです。
+++
date = '2025-11-30T09:04:00+09:00'
draft = false
title = 'XXX'
[cascade]
showTableOfContents = false # 目次を消す
+++
以下、記事本文
基本的に、cascadeするパラメーターは[cascade]と書いた次の行以降に、対象のパラメーターとその値を設定すればOKです。
上記の例では、記載したページとその配下のページにおいて、showTableOfContents = falseが設定されます。
すなわち、ページの目次が表示されなくなります。
showTableOfContentsはBlowfishテーマ固有のパラメーターで、当該ページに対して目次を表示するかどうかという意味を持つパラメーターです。
まとめ
cascadeを使用すると、コンテンツの一部分だけデフォルト値を変えるといった対応が容易になります。
ブログサイトのように、posts等のフォルダにすべての記事を置く場合はあまり使用しないですが、個人サイトのように複数のディレクトリを作る場合は、cascadeを使用することで設定が楽になる場合があります。