ページ変数
はじめに
ページ毎の変数は、
フロントマター
で定義されるか、コンテンツのファイルの場所から生成されるか、コンテンツ本体から生成されます。
この記事では、ページレベル変数のリストの一部をまとめました。
ページ変数
多くの変数は、
フロントマター
で定義されている変数です。
その中の一部を説明します。
.Kind: page、home、section、taxonomy、term、RSS、sitemap、robotsTXT、404などページの種類.LinkTitle: ページのリンクを設定。設定されていれば、titleより優先的に使用される.Next: 次のregular page.Prev: 前のregular page.Site: Site Variables.Type: Content Types タイプが未設定ならcontent/<TYPE>のフォルダ名がタイプになる
.Pages変数
regular pageはpostページかcontentページです。
一方、list pageはregular pageか他のlist pageを一覧化します。
(例: homepage、section page、taxonomy term page、taxonomypage)
記事をツリー状にした場合、末端がregular page、幹がlist pageです。
.Site.Pages: サイト内の全ページ。セクションやtaxonomyページも含む.Site.RegularPages: サイト内の全通常ページ
以下の変数は、現在のスコープだけを返します。
.Pages: 現在のページのスコープのregular pageとセクションページ。.Data.Pagesのエイリアスです。(第一階層のみ).RegularPages: 現在のページのスコープのregular page。入れ子になっているものは除く.RegularPagesRecursive: 現在のページ以下の全てのregular page。入れ子になっているものを含む
regular pageから.Pagesや.RegularPagesを使用しても、空が返ります。
セクション変数と関数
.Parent: ページのセクションや、セクションの親セクション.Section: 現在の記事が属するセクション.Sections: 現在の配下のセクション
参考
フロントマター
はじめに Hugoで記事を書く際に、各投稿の先頭に投稿の情報を記載できます。 この情報のことをフロントマター(FrontMatter)と言います。 フォーマット フロントマターはどんな記号で囲まれているかで、フォーマットの指定ができます。 TOML: +++ YAML: --- JSON: {} 中身はkeyvalueのペアで指定できます。 TOMLの場合はdate = "2021-07-11"のように=で繋ぎます。 定義済み変数 フロントマターには定義済み変数と独自定義変数が存在します。 定義済み変数の一部は以下のようになっています。 date: 投稿日付 description: コンテンツの説明 draft: trueなら下書き段階 images: 対象のページに関連する画像のパス配列。_internal/twitter_cards.htmlなどで使用される keywords: メタキーワード lastmod: 最終更新日付 linkTitle: コンテンツのリンク生成時に使用されるURL。Hugoはtitleの前にlinkTitleを使用する series: ページが属するシリーズ名 slug: 出力URLの末尾に表示される weight: 順番を並べ替える際に、小さいほど優先される 独自定義変数 include_toc = true このように定義した場合、.Params.include_tocで使用できます。 参考 Front Matter ...
404ページを作成する
はじめに 404ステータスとは、ページが見つからない場合に返すステータスのことです。 Hugoでは存在しないページ用のHTMLも独自定義できます。 作成方法 /layouts/404.htmlにページを作成します。 {{ define "main"}} <main id="main"> <div> <h1 id="title"><a href="{{ "/" | relURL }}">Go Home</a></h1> </div> </main> {{ end }} 動作確認 http://localhost:1313/404.html にアクセスして確認します。 ローカルでの確認の注意点として、ローカルは上記のリンクを直接開く必要があります。 GitHubPagesなどのサービスを利用している場合は、存在しないURLにアクセスされた場合は、404.htmlにリダイレクトしてくれます。 参考 Custom 404 Page ...