首页 > 解决方案 > 在 Hugo 中有什么方法可以将页面标题放在范围声明中

问题描述

我试图在 Hugo 中制作一个模板页面。我想列出所有标签与当前页面标题相同的页面。有什么方法可以将“.Title”的值代替“硬编码标签”,如下面的代码所示。

<h3>Perfumes by {{ .Title }}</h3>
<div>
    <ul>
    {{ range .Site.Taxonomies.tags.hard-coded-tag }}
        <li><a href="{{ .Page.URL }}">{{ .Page.Params.perfume.name }}</a></li>
    {{ end }}
    </ul>
</div>

将“.Title”的值存储在某个变量 {{ $someVariable := .Title }} 中,并用它替换硬编码类别。我没有工作。

使用 $scratch.Set 进行了同样的尝试,但也没有用

标签: templatesmarkdownhugostatic-site

解决方案


我在我的门户页面上做这种事情。诀窍¹是使用索引函数,例如:

<h3>Perfumes by {{ .Title }}</h3>
<div>
    <ul>
    {{ range (index .Site.Taxonomies.tags .Title) }}
        <li><a href="{{ .Page.URL }}">{{ .Page.Params.perfume.name }}</a></li>
    {{ end }}
    </ul>
</div>

或者,先设置一个变量并使用它,例如:

{{ $t := .Title }}

<h3>Perfumes by {{ $t }}</h3>
<div>
    <ul>
    {{ range (index .Site.Taxonomies.tags $t) }}
        <li><a href="{{ .Page.URL }}">{{ .Page.Params.perfume.name }}</a></li>
    {{ end }}
    </ul>
</div>

我希望这有帮助!

¹我在 discourse.gohugo.io 的线程Regular page parameter inside a range中了解到这一点。


推荐阅读