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

Hugo模板无法访问Markdown自定义元数据问题求助

这个问题我之前折腾Hugo的时候也碰到过,属于访问自定义Front Matter变量的典型误区~

问题根源

Hugo里的变量分两类:一类是内置顶级变量(比如.Title、.Content),这些是框架预设的,可以直接通过页面对象访问;另一类是你自己在Markdown头部定义的自定义字段(比如author、position),这些字段会被自动收纳到页面的.Params映射(map)里,不能直接用.Author或.Position访问。你之前看到的{ map[]},其实是Hugo找不到对应的顶级变量时返回的空map对象。

解决方案

只需要把模板里的自定义字段访问路径改成.Params.xxx就可以了,修改后的模板代码如下:

{{ range where .Data.Pages "Type" "type"}}
<section>
  <div>
    <div>
      {{ .Title }}<br>
      {{ .Content }}
    </div>
    <div>
      {{ .Params.Author }}<br>
      {{ .Params.Position }}
    </div>
  </div>
</section>
{{ end }}

额外优化建议

如果担心某些文章可能没填author或position字段,导致页面显示空白,可以用with语句或者default函数做容错处理:

  • 用with:只会在字段存在时渲染内容
    {{ with .Params.Author }}作者:{{ . }}{{ end }}
    
  • 用default:字段不存在时显示默认值
    {{ .Params.Position | default "未知职位" }}
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:54:18