実現したいこと

テーマやlayouts/配下にテンプレートを追加・変更していくと、実際にはどこからも呼び出されなくなった古いテンプレートが埋もれていく。hugoは存在するテンプレートファイルを黙って読み込むだけで、使われていないものを教えてくれない。

--printUnusedTemplatesを付けると、ビルド時に一度も呼び出されなかったテンプレートを警告として表示できる。

使い方

hugo--printUnusedTemplatesを付ける。public/を上書きしたくない場合は-M(--renderToMemory)と組み合わせる。

$ hugo -M --printUnusedTemplates

参考: 【Hugo】-Mオプションでディスクへ書かずにビルドする

動作確認

このブログ(約500記事)に対して実行したところ、3件の未使用テンプレートが見つかった。

$ hugo -M --printUnusedTemplates 2>&1 | grep -i template
WARN  Template /_partials/custom.css is unused, source "[project-root]/layouts/_partials/custom.css"
WARN  Template /_shortcodes/amazon.html is unused, source "[project-root]/themes/hugo-theme-suer-til/layouts/_shortcodes/amazon.html"
WARN  Template /robots.txt is unused, source "[project-root]/layouts/robots.txt"

警告はWARNレベルで出力される。--quietを付けるとこの警告ごと表示されなくなるため、確認時は--quietを外す。

$ hugo --quiet -M --printUnusedTemplates 2>&1 | grep -i template
$ echo $?
1

参考: hugo | Hugo