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だけが出ていませんでした。
原因は関連リンクのスレッドのようにバグです。