Hugoで使われている内部テンプレートファイルはどこにあるか

Hugoで使われる内部テンプレート、例えばsitemap.xmlなどがどのように出力されているかを調べる方法についてメモしておく。大したことは書かないというか、単に場所のリンクを貼るだけなんだけど、しばらく時間をおいたら絶対に忘れるのでメモしておく。

https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/_default/sitemap.xml

これをベースにすれば自分で好みの情報が出力できるようになる。

テーマによっては上書きして利用しているのもあるだろう。当然自分で上書きしてやることも可能。

実際このサイトではrss.xmlを上書きして微妙に変えている。

というのも、このサイトはcontent下にpostとforsiteという2つのセクションがある。WordPressを使っていた頃の名残でpostとsingleを分けているイメージだ。1

この状態ではrss.xmlは通常の記事(post)と固定ページ(forsite)のどちらに属する記事であろうとも、新規に作成された記事を対象に選んでしまう。rss.xmlは新着記事のお知らせに使いたいので、固定ページの新着を含めてほしくない。こういうときに内部テンプレートを利用してちょっとしたカスタマイズを行うわけである。

具体的にどういう調整をしたかはGitHubでコードを公開してあるものなので、そちらを参考にしてほしい。今回の記事でのメインは、そもそもHugoが内部で使っているテンプレートファイルのコードはどこにあるのかという点なので。


  1. singleはHugoにおいては各個別の記事に適用されるテンプレートファイル名になるので、適当にforsiteとかいう名前にした。 ↩︎

Amazonのほしいものリストを公開しています。仕事で欲しいもの、単なる趣味としてほしいもの、リフレッシュのために欲しいものなどを登録しています。 寄贈いただけると泣いて喜びます。大したお礼はできませんが、よりよい情報発信へのモチベーションに繋がりますので、ご検討いただければ幸いです。