本記事の概要
Hugoでのtaxnomyページやtermページの出力を抑制する方法について説明します。
前提
Hugo+Blowfishテーマ適用済みの環境です。
なお、Windowsでの操作を想定しています。
(本記事が属するアドベントカレンダーについてもご確認ください)
結論
hugo.tomlで下記のようにtaxnomyやtermに対して[]として指定すればよいです。
こうすることで、 内部的なtaxnomyやtermの機能は有効にしつつ、HTMLとしての一覧ページ出力を行わないようにできます。
# 出力形式
[outputs]
# taxonomyとtermページは邪魔なので出力しない。
taxonomy = []
term = []
hugo.tomlのdisableKindsにtaxnomyやtermを指定すると、Blowfishテーマのシリーズ機能が使えなくなるため、指定しない方が良い。
blowfishテーマにおける注意点:disableKindsとの違い
taxnomy機能やterm機能を有効にする場合は、hugo.tmlで下記のようにdisableKindsの項目として指定することで無効化できます。
# 404, home, page, robotstxt, rss, section, sitemap, taxonomy,term
disableKinds = ["taxonomy", "term"]
こうすることで、機能そのものが無効化されるため、必然的にTaxnomyやTermページの出力もされなります。
ただし、blowfishテーマではこの場合に困るケースが存在します。
具体的に言えば、シリーズ機能が動作しなくなります。
シリーズ機能は下記のblowfish公式サイトでの記載にもある通り、seriesというtaxnomyを設定することで、記事内に「パート ●●」といった表示ができる機能です。
従って、disableKindsでtaxnomyやtermを無効化してしまうと、Series機能が動作しなくなります。
disableKindsでtaxnomyやtermの指定を解除するとシリーズ機能も使えますが、当然Taxnomyページやtermページが出力されます。
つまり「記事内にパート●●を埋め込むためにシリーズ機能は使いたいが、Taxonomyやtermページによる一覧の表示は不要」といったユースケースで困ることになります。
こういったユースケースでは、taxnomyやtermを内部的に有効にしつつ、taxnomyやtermページの出力を止めてあげる必要がありますので、outputsで指定することになります。
まとめ
それぞれのパラメータの違いや使い分けは下記のようになります。
outputsはそれぞれのページの出力フォーマットを規定するコンフィグパラメータで、[]を指定すると(内部的に機能自体は有効のまま)結果を出力しないことになります。
disableKindsに指定すると、機能自体が無効化されます。
よって、内部的には使用するが、HTMLの出力が要らないといったケースでは用いるべきではありません。
disableKindsを使用するのは、内部も含めて機能そのものを使用しない時に限られますので、指定する際は細心の注意を払いましょう。