Hugo テンプレートの中で、ホームページを表す Page オブジェクトを取得するには次のようにします。
{{ $home := .Site.Home }}
{{ printf "%#v" $home }}
公式ドキュメントの .Site 変数のページには書いてないのですが、上記のように簡単にホームページの Page オブジェクトを取得できるみたいです。
2 行目では、取得した Page オブジェクトの内容を出力して確認しています。
GetPage 関数を使用して、Kind パラメータに "home" を指定するというのもありです。
{{ $home := .Site.GetPage "home" }}
{{ printf "%v" (eq $home .Site.Home) }} {{/* true になるはず */}}
このような取得方法を知るまでは、次のような感じでものすごく面倒な書き方してました。。。
{{ $home := index (where .Site.Pages "URL" "==" "/") 0 }}
まず、where 関数を使い、全ページ (.Site.Pages) 中で URL が / であるものの Page オブジェクトの配列を取得しています。
実際にはホームページは 1 つだけなのですが、where は Page オブジェクトの配列を返すので、index 関数を使って 1 番目の要素だけを取り出しています。
なんて非効率的な(^^;
