cccs-website/lib/yearlyarchive.rb
2013-08-25 12:47:12 +02:00

22 lines
800 B
Ruby

require 'ostruct'
def generate_yearly_archive(articles, basepath, title, templatename = 'article_archive')
yearmap = articles.group_by { |item| item[:created_at].year }
yearmap.keys.each { |year|
# Simplified assumption: At least one blog post each year
linkprev = if (year>yearmap.keys.min)
", :linkprev => OpenStruct.new(:title => #{year-1}, :link => '#{basepath}/#{year-1}/')"
else
""
end
linknext = if (year<yearmap.keys.max)
", :linknext => OpenStruct.new(:title => #{year+1}, :link => '#{basepath}/#{year+1}/')"
else
""
end
@items << Nanoc::Item.new(
"<%= render '#{templatename}', :year => #{year} #{linkprev} #{linknext} %>",
{ :title => "#{title} #{year}", :kind => "fullpage" },
"#{basepath}/#{year}/")
}
end