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

Hugo 0.100.1无法渲染data目录JSON数据模板问题

问题根因

Hugo 默认不会解析普通 Markdown 内容文件中写入的 Go 模板语法,该默认规则是Hugo的安全设计,避免内容文件中混入恶意模板代码被执行。直接将range遍历逻辑写在content/posts/staff.md正文里时,Hugo 会把这段代码识别为普通文本原样输出,不会执行遍历渲染逻辑。

可行解决方案
  • 方案1:通过短代码(Shortcode)实现渲染(推荐)
    在项目layouts/shortcodes/目录下新建短代码模板文件,比如命名为staff-list.html,将数据遍历逻辑写入该文件:
    {{ range .Site.Data.staff }}
    <h2>{{ .name }}</h2>
    <p>{{ .email }}</p>
    {{ end }}
    
    回到content/posts/staff.md文件,删除原来直接写的模板代码,替换为短代码调用语句{{</* staff-list */>}}即可,Hugo 构建时会自动执行短代码内的逻辑完成数据渲染。
  • 方案2:为页面配置专属渲染模板
    在layouts/posts/目录下新建与页面对应的模板文件,比如对应staff.md的模板为staff.html,将遍历渲染逻辑写入模板文件,Markdown 文件仅保留正文内容即可,Hugo 构建时会自动匹配对应模板完成数据渲染。
  • 方案3:开启单页模板渲染权限(不推荐)
    如果需要直接在 Markdown 文件内写模板语法,可以在对应页面的头部配置(Front Matter)中添加如下配置,强制 Hugo 渲染文件内的模板语句:
    build:
      render: always
    
    该方案会造成内容和渲染逻辑强耦合,提升后续维护成本,非特殊场景不建议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 09:27:32