You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Hugo中生成可用于场地筛选的JSON文件?

解决Hugo无法生成场地JSON文件的问题

问题根源

你将JSON模板放在theme/mytheme/layouts/venues/list.json但未生成对应文件,核心是Hugo的模板匹配规则、输出格式配置或内容结构存在问题。

修复步骤

1. 确认模板位置与section内容

Hugo仅会为存在内容的section生成列表页:

  • 检查content/venues/目录下是否有至少一篇Markdown内容文件,空section不会触发列表模板渲染。
  • 模板路径theme/mytheme/layouts/venues/list.json是正确的section专属列表模板位置,无需调整路径,确保内容存在即可。

2. 开启JSON输出格式

Hugo默认仅生成HTML格式,需在配置文件(如config.toml)中添加JSON输出规则:

[outputs]
home = ["HTML", "RSS"]
section = ["HTML", "JSON"]

这段配置指定section列表页同时生成HTML和JSON两种格式。

3. 优化JSON模板代码

你的模板重复执行了相同的页面筛选逻辑,可用Hugo内置的delimit函数简化逗号处理,避免手动判断索引:

{
  "churches": [
    {{ range $page := where .Site.RegularPages "Section" "venues" }}
    {
      "title": {{ $page.Title | jsonify }},
      "day": {{ $page.Params.day | jsonify }}
    }
    {{ end | delimit "," }}
  ]
}

4. 验证访问路径

配置完成后重新运行hugo server,生成的JSON文件路径应为public/venues/index.json,访问地址为http://localhost:55769/venues/index.json(替换为你的实际端口)。


内容的提问来源于stack exchange,提问作者user1444027

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 07:12:53