Hugoの「Custom Output Formats」を使って「json」を出力しようと思っていたのですが、
なぜか「taxonomyTerm」だけが出力されない状態になったのでメモです!
結論 Hugoを最新化する
v0.57.0で対応されているバグでした
背景 jsonの出力方法について
config.jsonを以下のように設定し、シングルページ、ホーム(インデックス)、カテゴリ、カテゴリ一覧をそれぞれjson出力するようにしていました。
config.json
"outputs": {
"home": [
"HTML",
"JSON"
],
"page": [
"HTML",
"JSON"
],
"section": [
"HTML",
"JSON"
],
"taxonomyTerm": [
"HTML",
"JSON"
],
"taxonomy": [
"HTML",
"JSON"
]
},
yaml・tomlでのサンプルはこちら
もちろんそれぞれのjson用テンプレートも用意していました。
layouts\index.json layouts_default\section.json layouts_default\single.json layouts_default\taxonomy.json layouts_default\terms.json
参考 layouts_default\taxonomy.json
{
"list":[
{{ if eq .Title "Tags"}}
{{ range $i, $e := .Site.Taxonomies.tags.ByCount }}
{{ if ne $i 0 }},{{ end }}
{
"name":{{ .Name | jsonify}},
"url":"/tags/{{ .Name | urlize }}",
"count":{{ .Count | jsonify}}
}
{{end}}
{{ else }}
{{ range $i, $e := .Site.Taxonomies.categories.ByCount }}
{{ if ne $i 0 }},{{ end }}
{
"name":{{ .Name | jsonify}},
"url":"/categories/{{ .Name | urlize }}",
"count":{{ .Count | jsonify}}
}
{{end}}
{{end}}
]
}
この状態で「hugo」すると、なぜかlayouts_default\terms.jsonだけが出ていませんでした。
原因は関連リンクのスレッドのようにバグです。