templates - 在 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 进行了同样的尝试,但也没有用
解决方案
<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中了解到这一点。
推荐阅读
- javascript - 在greasemonkey脚本中打印“事件”对象会静默终止执行,如何查看“事件”?
- android - 意图和配置正确清单
- sql - 如果不为空,则更新列
- laravel - Laravel FileSystem 创建 CloudFront 签名 URL
- gdb - 尝试使用 ROP 进行利用时 gdb 和直接执行的不同行为
- react-native - window.open 弹出窗口在本机 webview 中不起作用
- mysql - PDO 无法连接到 MySql(Phpmyadmin)
- java - 无法在 javafx 程序上获得标题栏
- ios - Trying to share Metal texture with Opengl texture
- javascript - “无法解析绑定。” 尝试使用标签使用组件时