まくまくHugo/Goノート
ショートコードの中からフロントマターのパラメータを参照する ($.Page.Params)
2017-10-02
ショートコードの中で $.Page.Params を参照すると、コンテンツファイルのフロントマターに記述したパラメータにアクセスすることができます。

下記の hello ショートコードは、コンテンツファイル (.md) のフロントマターに記述された title パラメータと date パラメータの値を表示します。

/layouts/shortcodes/title-and-date.html

{{ $.Page.Params.title }}<br>
{{ $.Page.Params.date | dateFormat "Mon, 02 Jan 2006" }}
時刻は dateFormat 関数に渡して、表示フォーマットを指定しています。 パイプで渡すのではなく、関数の第二パラメータとして {{ dateFormat "Mon, 02 Jan 2006" $.Page.Params.date }} のように渡すこともできます。

Go 言語の時刻の扱いに関してはこちらを参照してください。

作成した title-and-date ショートコードは、コンテンツファイルの中からは次のような感じで利用します。

/content/posts/page1.md

---
title: "Page1 Title"
date: 2017-10-02
---

{{< title-and-date >}}

上記のショートコードの部分は、下記のように展開されます。

Page1 Title<br>
Mon, 02 Oct 2017
2017-10-02