使用環境
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 }}