【Hugo】terms(カテゴリ一覧)のjsonが作成できない

2019年 10月 5日

【Hugo】terms(カテゴリ一覧)のjsonが作成できない

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だけが出ていませんでした。

原因は関連リンクのスレッドのようにバグです。