フロントマター
はじめに
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で使用できます。
参考
Markdownでclass属性やid属性を付ける
はじめに 通常Markdownで記載していると、独自のclass属性やid属性が指定できません。 ただし、だからと言って直接HTMLを記載するとMarkdownで書くというメリットが失われます。 Markdownで書きつつ、class属性やid属性を付ける方法を説明します。 markup.goldmark.parser.attribute 装飾したいMarkdown要素の後に{}で囲んだ属性リストを追加することで、独自の属性を追加できます。 この機能を使用するためにはconfig.tomlに以下の設定が必要です。 [markup.goldmark.parser.attribute] block = true ただし、この機能はv0.81.0からHugoに追加された機能です。 例えば以下のMarkdownを変換してみます。 この文章は警告です。 { .warn } <p class="warn">この文章は警告です。</p> 参考 Configure Markup ...
ページ変数
はじめに ページ毎の変数は、 フロントマター で定義されるか、コンテンツのファイルの場所から生成されるか、コンテンツ本体から生成されます。 この記事では、ページレベル変数のリストの一部をまとめました。 ページ変数 多くの変数は、 フロントマター で定義されている変数です。 その中の一部を説明します。 .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: 現在の記事が属するセクション ....