From 8afa1e626703f6f8cef1a8058e3075b9e458febc Mon Sep 17 00:00:00 2001 From: Stefan Schlott Date: Mon, 26 Aug 2013 08:26:14 +0200 Subject: [PATCH] Yearly archive: Always create a page for current year --- Rules | 1 + content/htaccess.txt | 1 + layouts/default.html | 2 +- lib/eventhelpers.rb | 9 +++++++++ lib/yearlyarchive.rb | 4 ++++ 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Rules b/Rules index 3d770b5f..5c3ce02e 100644 --- a/Rules +++ b/Rules @@ -3,6 +3,7 @@ preprocess do merge_location_data generate_event_pages + generate_activity_pages generate_archive_pages generate_twitter_archive_pages end diff --git a/content/htaccess.txt b/content/htaccess.txt index e39e4868..69f2b2e0 100644 --- a/content/htaccess.txt +++ b/content/htaccess.txt @@ -1,6 +1,7 @@ ErrorDocument 404 /404/index.html RedirectMatch 301 ^/events/$ /events/<%= Time.now.year %>/ +RedirectMatch 301 ^/activities/$ /activities/<%= Time.now.year %>/ RedirectMatch 301 ^/archives/articles/$ /archives/articles/<%= latest_articles(1)[0][:created_at].year %>/ RedirectMatch 301 ^/archives/twitter/$ /archives/twitter/<%= twitter_grouped_by_month.keys.sort.last %>/ diff --git a/layouts/default.html b/layouts/default.html index cf1991b7..2e1e7c6c 100644 --- a/layouts/default.html +++ b/layouts/default.html @@ -29,7 +29,7 @@
  • href="/">
  • href="/about/">Wir über uns
  • href="/events/">Veranstaltungen -
  • href="#">Aktivitäten +
  • href="/activities/">Aktivitäten
  • href="/projects/">Projekte
  • href="/members/">Members
  • href="/planet-cccs/">Planet CCCS diff --git a/lib/eventhelpers.rb b/lib/eventhelpers.rb index 16306859..266b344b 100644 --- a/lib/eventhelpers.rb +++ b/lib/eventhelpers.rb @@ -7,3 +7,12 @@ def generate_event_pages() generate_yearly_archive(articles, :startdate, '/events', 'Veranstaltungen des CCC Stuttgart', 'event_archive') end +def get_activities() + items.select { |i| (i[:kind]=='event') && i.identifier.start_with?('/activities') } +end + +def generate_activity_pages() + articles = get_activities() + generate_yearly_archive(articles, :startdate, '/activities', 'Aktionen und Aktivitäten', 'event_archive') +end + diff --git a/lib/yearlyarchive.rb b/lib/yearlyarchive.rb index 2093f66c..aaefc514 100644 --- a/lib/yearlyarchive.rb +++ b/lib/yearlyarchive.rb @@ -1,7 +1,11 @@ require 'ostruct' def generate_yearly_archive(articles, date_attribute, basepath, title, templatename = 'article_archive') + currentyear = Time.now.year yearmap = articles.group_by { |item| item[date_attribute].year } + if !yearmap.has_key?(currentyear) + yearmap[currentyear] = [] + end yearlist = yearmap.keys.sort yearlist.each_index { |i| year = yearlist[i]