如何通过 markdown 名称遍历 hugo 页面
How to iterate through hugo pages by markdown names
我正在构建一个简单的 Hugo 博客,我有一个页面的以下 toml 配置
+++
[publications]
links = ["2017/article1",
"2017/article2"]
+++
我将这些文件放在相应的内容部分 (content/publications/2017/article1.md)。我需要的是遍历它们,加载每个页面并使用它们的一些 .Params
来构建部分页面。像
{{ range .Params.publications.links }}
{{ do something with page parameters }}
{{ end }}
我想这是一个基本的 Hugo 问题,我就是想不出来。
这实际上需要对 Hugo 模板进行一些非常高级的使用。但你可以做到!
首先,为方便起见,请将“.md”扩展名添加到您尝试访问的页面。添加完整路径可能也是一个好主意,这样如果您将来在不同的目录中添加具有相同名称的文件,Hugo 就不会得到错误的文件。
+++
[publications]
links = ["publications/2017/article1.md",
"publications/2017/article2.md"]
+++
然后你可以在你的模板中使用类似下面的内容。
{{ range .Params.publications.links }}
{{ range where $.Site.Pages "URL" ($.RelRef .) }}
The "{{ .Title }}" page has {{ .WordCount }} words.
{{ end }}
{{ end }}
这使用 where
function to filter the array of all the site's pages by the URL field. To find the URL it uses the .RelRef
page variable 和 link 文本。
我认为还应该有一种方法可以在没有内部 range
语句的情况下使用 apply
函数来执行此操作,但我无法让它工作。
我正在构建一个简单的 Hugo 博客,我有一个页面的以下 toml 配置
+++
[publications]
links = ["2017/article1",
"2017/article2"]
+++
我将这些文件放在相应的内容部分 (content/publications/2017/article1.md)。我需要的是遍历它们,加载每个页面并使用它们的一些 .Params
来构建部分页面。像
{{ range .Params.publications.links }}
{{ do something with page parameters }}
{{ end }}
我想这是一个基本的 Hugo 问题,我就是想不出来。
这实际上需要对 Hugo 模板进行一些非常高级的使用。但你可以做到!
首先,为方便起见,请将“.md”扩展名添加到您尝试访问的页面。添加完整路径可能也是一个好主意,这样如果您将来在不同的目录中添加具有相同名称的文件,Hugo 就不会得到错误的文件。
+++
[publications]
links = ["publications/2017/article1.md",
"publications/2017/article2.md"]
+++
然后你可以在你的模板中使用类似下面的内容。
{{ range .Params.publications.links }}
{{ range where $.Site.Pages "URL" ($.RelRef .) }}
The "{{ .Title }}" page has {{ .WordCount }} words.
{{ end }}
{{ end }}
这使用 where
function to filter the array of all the site's pages by the URL field. To find the URL it uses the .RelRef
page variable 和 link 文本。
我认为还应该有一种方法可以在没有内部 range
语句的情况下使用 apply
函数来执行此操作,但我无法让它工作。