独学者Fossa

独学していることなど

Hugo Data Templates

Hugo
Hugo

使用環境

Name Version
Hugo v0.87.0-extended

Data Templates

Hugoには、Data Templatesという機能があります。

JSONファイルや、YAMLファイルを、dataフォルダ内に置けば、.Site.Dataで、取り出すことが出来ます。

Data Templatesを利用する方法は、下記の通りです。

.Site.Dataの確認

.Site.Dataの中身を、確認する方法です。

<script>console.log({{ .Site.Data }});</script>

或いは、jsonify

<pre>{{ .Site.Data | jsonify (dict "indent" "  ") }}</pre>

v0.74.0で、debug.Dumpが追加されていました。

<pre>{{ debug.Dump .Site.Data }}</pre>

ファイル名が固定

content data
content/任意.md data/a.yml
{{ range .Site.Data.a }}
  {{ . }}
{{ end }}

ファイル名が動的(セクションがない)

content data
content/a.md data/a.yml
{{ $file := .File.ContentBaseName }}
{{ $rows := index .Site.Data $file }}
{{ range $rows }}
  {{ . }}
{{ end }}

ファイル名が動的(セクションのみ)

content data
content/doc/a.md data/doc/a.yml
{{ $file := .File.BaseFileName }}
{{ $section := .Section }}
{{ $rows := index .Site.Data $section $file }}
{{ range $rows }}
  {{ . }}
{{ end }}

ファイル名が動的(階層がある)

content data
content/doc/one/a.md data/doc/one/a.yml
{{ $text := (replace .File.Path ".md" "") }}
{{ $array := split $text "/" }}
{{ range (index .Site.Data $array) }}
  {{ . }}
{{ end }}