在 Hugo 中过滤数据模板对象

Filtering data template objects in Hugo

所以我正在尝试使用 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 }}

当我使用

时,事情会像 expected.But 那样工作
{{ range .Site.Data.events }}

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

第二部分

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

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

并尝试了多种不同的日期格式。关于我可能哪里出错的任何提示?

第一部分

片段:

{{ range .Site.Data.events }}

将为您提供两件物品 - 一件用于 aevents,一件用于 bevents。您将需要执行嵌套 range 来处理两个文件中的各个事件。

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

第二部分

我认为这不能直接在范围内完成,因此您需要在之后进行过滤:

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