从 Hugo 部分读取站点配置
Read site configuration from a Hugo partial
我想在我的博客主页上添加一张地图。它需要接受一些参数。我正在努力弄清楚如何正确配置它。我通过对设置进行硬编码使其工作,但这并不适合与他人分享我的解决方案。
我的问题是我将其实现为部分:{{ partial "map.html" (where site.RegularPages "Type" "in" site.Params.mainSections) }}
据我了解I cannot access the .Site.Params
variable in a partial。我也一直在考虑使用简码,但这似乎也不是正确的选择,因为简码只能用在内容中,不能用在模板中。我也不想直接将其添加到模板的 index.html
中,因为它独立于主题。
实现这个的正确方法是什么?
您可以使用 .
:
将当前上下文传递给部分
{{ partial "header.html" . }}
然后您可以像从调用者那里访问上下文一样从部分内部访问上下文:
This site is called {{ .Site.Title }}.
Hugo 不直接支持将多个参数传递给部分参数。如果你想传递上下文之外的东西,你可以传递一个包含所有值的字典:
{{ partial "header.html" (dict "Ctx" . "Percent" "84") }}
然后从部分内部:
This site is called {{ .Ctx.Site.Title }}, and is {{ .Percent }}% awesome!
.Site.Params == site.Params
查看文档:https://gohugo.io/functions/site/#readout
这应该可以解决眼前的问题。否则:Smitop 的解决方案。
(即'site'可以全局访问)
我想在我的博客主页上添加一张地图。它需要接受一些参数。我正在努力弄清楚如何正确配置它。我通过对设置进行硬编码使其工作,但这并不适合与他人分享我的解决方案。
我的问题是我将其实现为部分:{{ partial "map.html" (where site.RegularPages "Type" "in" site.Params.mainSections) }}
据我了解I cannot access the .Site.Params
variable in a partial。我也一直在考虑使用简码,但这似乎也不是正确的选择,因为简码只能用在内容中,不能用在模板中。我也不想直接将其添加到模板的 index.html
中,因为它独立于主题。
实现这个的正确方法是什么?
您可以使用 .
:
{{ partial "header.html" . }}
然后您可以像从调用者那里访问上下文一样从部分内部访问上下文:
This site is called {{ .Site.Title }}.
Hugo 不直接支持将多个参数传递给部分参数。如果你想传递上下文之外的东西,你可以传递一个包含所有值的字典:
{{ partial "header.html" (dict "Ctx" . "Percent" "84") }}
然后从部分内部:
This site is called {{ .Ctx.Site.Title }}, and is {{ .Percent }}% awesome!
.Site.Params == site.Params
查看文档:https://gohugo.io/functions/site/#readout
这应该可以解决眼前的问题。否则:Smitop 的解决方案。
(即'site'可以全局访问)