这是我想要实现的一些伪代码:
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
它将使用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
目前,它什么也没输出。所以我想我只是弄错了一些变量名,我想我做错了。感谢您的帮助。 :)
顺便说一句,不用担心
@postDatetime
功能。那与其他地方没有问题。 :) 最佳答案
如果您已经按日期对帖子进行了排序,那么您的收藏集已经按年,月分组了。您需要做的就是遍历整个集合,并在年/月值更改时插入年和月标头。像这样:
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()
这听起来像您所追求的吗?