通过post的date循环,以便在DocPad中进行存档

这是我想要实现的一些伪代码:

for year in post.date h1 year for month in post.date h2 month ul li post entry 

这是伪代码。 但是,我没有足够的经验来实现这一点。 这将发生在这个文件是: https : //github.com/Greduan/eduantech.docpad/blob/master/src/documents/posts.html.eco

这将是在生态语言。 我也使用Moment.js,以防万一这是必要的。

即使你没有提供确切的代码,一般的方向将非常感激。 🙂

编辑:我想实现的是类似于这样的: http : //swannodette.github.io/archive.html

编辑2:这是我想出的一些代码:

 for post in @getCollection('posts').toJSON() for year in post.date h1 @moment(post.date).format('YYYY') for month in post.date h2 @moment(post.date).format('MMMM') ul -> li -> @postDatetime(post.date, 'll') + ' » ' a href:'post.url', post.title 

现在它只输出什么。 所以我想我只是弄错了一些variables名,我想我是这么做的。 我感谢任何帮助。 🙂

顺便说一句,不要担心@postDatetime函数。 那工作没有问题在别的地方。 🙂

如果您的post已按datesorting,则您的collections已按年份,月份分组。 您只需循环整个集合,并在年/月值更改时插入年份和月份标题。 像这样的东西:

 yr = -1 //temporary vars for storing current year value in loop mnth = -1 //same for month value monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ] div style:'text-align:left;font-size:20px;width:500px;margin-right:auto;margin-left:auto', -> for post in @getCollection('posts').toJSON() if post.date.getFullYear() isnt yr yr = post.date.getFullYear() mnth = -1 h1 yr.toString() if post.date.getMonth() isnt mnth mnth = post.date.getMonth() h2 style:'padding-left:10px;', monthNames[mnth] ul style:'padding-left:50px;', -> li -> post.date.toDateString() 

这听起来像你以后的?