我的头版中的图像是这样存储的:
images: - image: image_1.jpg caption: "image 1 caption" - image: image_2.jpg caption: "image 2 caption"
我只想显示第一个,所以我使用以下内容:
{{ $image := .resources.getmatch (printf "**%s" (index .params.images 0).image) }}
奇怪的是,只有当我在本地 hugo 服务器运行时添加 .image
部分时,这才有效。一旦我停止并再次启动,该网站就无法重建并出现以下错误:
... execute of template failed: template: partials/content/figure.html:7:70: executing "partials/content/figure.html" at <0>: can't evaluate field image in type string
我只想能够访问 images[0].image
。我怎样才能做到这一点?
事实证明,我还有一些其他内容类型,其中前面的 images
仍然是简单的数组,而不是对象数组。这导致了我的构建错误。为了解决这个问题,我使用了以下建议,此处:
{{ $image := "" }} {{ if reflect.IsMap (index .Params.images 0) }} {{ $image = .Resources.GetMatch (printf "**%s" (index .Params.images 0).image) }} {{ else }} {{ $image = .Resources.GetMatch (printf "**%s" (index .Params.images 0)) }} {{ end }}