如何通过降价名称迭代hugo页面

时间:2017-04-16 18:37:59

标签: go hugo

我正在构建一个简单的Hugo博客,我有以下toml配置页面

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

我将这些文件放在适当的内容部分(content / publications / 2017 / article1.md)。我需要的是迭代它们,加载每个页面并使用它们中的一些.Params来构建部分。像

这样的东西
 {{ range .Params.publications.links }}
 {{ do something with page parameters }}
 {{ end }}

我想这是一个基本的雨果问题,我只是想不通。

1 个答案:

答案 0 :(得分: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按网址字段过滤所有网站页面的数组。要查找网址,请使用带有链接文字的.RelRef page variable

我认为应该有一种方法可以使用apply函数在没有内部range语句的情况下执行此操作,但我无法使其工作。