2013-08-06 1 views
1

Вот некоторые псевдо-код, что я хочу добиться:Перебор даты сообщений для того, чтобы сделать архив в 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

И это будет на языке eco. Я также использую Moment.js, если это необходимо.

Даже если вы не указали точный код, будет оценено общее направление. :)

EDIT: То, что я хотел бы достичь что-то похожее на это: http://swannodette.github.io/archive.html

EDIT 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 

На данный момент он просто ничего не выводит. Поэтому я думаю, что я просто неправильно назвал имена переменных. Я ценю любую помощь. :)

BTW не беспокойтесь о функции @postDatetime. Это с работами не проблема где-то в другом месте. :)

+0

Желаете ли вы группировать сообщения по их году, а затем их месяцу? Или вы хотите вывести сообщение за год и месяц? – balupton

+0

@balupton Я хочу, чтобы они группировали их по месяцам и годам, да. Спасибо за вашу помощь. :) – greduan

ответ

2

Если у вас уже есть ваши сообщения, отсортированные по дате, тогда ваша коллекция уже сгруппирована по году, месяцу. Все, что вам нужно сделать, это просмотреть всю коллекцию и вставить заголовки года и месяца, когда меняются значения года/месяца. Что-то вроде этого:

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() 

Звучит так, как вы?

+0

Прямо сейчас я немного перестал работать с моим сайтом, но как только я смогу, я займусь этим, пока он, похоже, делает то, что мне нужно, я вернусь с обратной связью позже. :) – greduan

+0

Это отлично работает! Я буду делать некоторые изменения, чтобы вывести то, что я хочу, но он достигает именно того, что я хотел. Огромное спасибо! :) – greduan

 Смежные вопросы

  • Нет связанных вопросов^_^