如何根据Docpad上的日期显示“即将发布”的内容?

时间:2013-09-08 21:57:13

标签: coffeescript docpad eco

我正在尝试在网页上宣传内容。该内容应该是即将发布的内容,即所有相同类型的下一个内容(“事件”)。

以下是元数据的外观:

---
layout: event
date: 2013-12-11
title: Cool event
---

docpad.coffee文件集合配置如下(使用moment.js):

collections:
    events: (database) ->
        database.findAllLive(type: "event", [date: -1])

    next_events: (database) ->
        @getCollection("events")
            .setFilter("upcoming", (event, searchString) ->
                return moment(event.eventDate, "YYYY-MM-DD").diff(moment()) < 0
            )

最后在index.html.eco中:

<% for event in @getCollection("next_events").toJSON(): %>
    <h3><%= event.title %></h3>
<% end %>

问题:它显示了我的所有事件,而不仅仅是未来事件。当我使用events集合时,它按预期工作(按日期desc排序的所有事件)。但是当我使用next_events集合时没有区别。我知道只显示一个我需要使用<% for event in @getCollection("next_events").toJSON()[0]: %>等内容来减少收藏内容。

非常感谢任何指针。

1 个答案:

答案 0 :(得分:2)

试试这个:

next_events: (database) ->
    @getCollection("events")
        .createLiveChildCollection()
        .setFilter("upcoming", (event, searchString) ->
            return moment(event.eventDate, "YYYY-MM-DD").diff(moment()) < 0
        )
        .query()