2017-04-16 49 views
1

我建立一个简单的雨果博客,我有一个页面如何通过降价的名字通过雨果页面迭代

+++ 
[publications] 
links = ["2017/article1", 
     "2017/article2"] 
+++ 

这下面toml配置而我在他们适当的内容部分,这些文件(内容/出版物/2017/article1.md)。我需要的是遍历它们,加载每个页面并使用它们的一些.Params来构建部分。像

{{ range .Params.publications.links }} 
{{ do something with page parameters }} 
{{ end }} 

我想这是一个基本的雨果问题,我只是无法弄清楚。

回答

3

这实际上需要一些相当先进的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通过URL字段过滤所有网站页面的数组。要找到它使用.RelRef page variable和链接文本的URL。

我认为还应该有一种方法来使用apply函数来做到这一点没有内部range声明,但我无法让它工作。

+0

令人惊叹的,谢谢:) –