在Hugo中过滤数据模板对象

时间:2019-02-26 16:11:40

标签: json hugo data-files

因此,我正在尝试建立一个与Hugo一起列出事件详细信息的快速页面(第一次使用它,所以请耐心等待。)

我已将两类事件放入两个JSON文件中,并将它们添加到/data/events/aevents.json和/data/events/bevents.json

样本json

{
"devcon 1": {"evname": "Dev Con 1", "year": "2019", "date": "2020-05-12T23:29:49Z"}, 
"devcon2": {"evname": "Dev Con 1", "year": "2018", "date": "2018-05-12T23:29:49Z"}
}

现在使用

{{ range .Site.Data.events.aevents }}

事物按预期运行。但是当我使用

时,它们却无法运行
{{ range .Site.Data.events }}

我认为这会给我aevents.json和bevents.json中的事件。

第二部分

json事件具有date属性。当我尝试过滤以仅显示即将发生的事件时,我的列表为空。我一直在玩这个的变体:

{{ range where .Site.Data.events.aevents "date" "ge" now }}

,并尝试了一堆不同的日期格式。关于我可能要去哪里的任何提示?

1 个答案:

答案 0 :(得分:0)

第一部分

摘要:

{{ range .Site.Data.events }}

将为您提供两个对象-一个用于事件,另一个用于bevents。您将需要执行嵌套的range来处理两个文件中的单个事件。

{{ range .Site.Data.events }}
    {{ range . }}
       .....

第二部分

我认为无法直接在范围内完成操作,因此您需要随后进行过滤:

{{ range .Site.Data.events }}
  {{ range . }}
    {{ if .date > $date }}
      ...