diff --git a/Rules b/Rules
index e6fb788..86f2da2 100644
--- a/Rules
+++ b/Rules
@@ -24,6 +24,8 @@ preprocess do
update_blog_attributes
create_yearly_items('Blog')
create_yearly_items('Events')
+ create_tagly_items('Blog')
+ create_tagly_items('Events')
convert_event_time_to_timestamps
all_events.each do |event|
diff --git a/content/blog/19-20/corona.md b/content/blog/19-20/corona.md
index d5e9395..9fbe8ab 100644
--- a/content/blog/19-20/corona.md
+++ b/content/blog/19-20/corona.md
@@ -3,6 +3,8 @@ title: "Zeus en Corona"
created_at: 11-03-2020
description: Corona en de invloed ervan op Zeus WPI
author: Robbe Van Herck
+tags:
+ - Corona
---
Beste Zeussers en Zeusinnen,
diff --git a/content/blog/19-20/vleor.md b/content/blog/19-20/vleor.md
index b10a6d7..7bcdef1 100644
--- a/content/blog/19-20/vleor.md
+++ b/content/blog/19-20/vleor.md
@@ -4,6 +4,8 @@ title: "Het vervolg op het avontuur van de Vleor"
created_at: 07-07-2020
description: Eindelijk, de Zeuskelder heeft weer een nieuwe vloer!
toc: true
+tags:
+ - vloer
---
**vleor** (_de; m;_ meervoud: _vleoren_)
diff --git a/content/blog/20-21/bestuur20_21.md b/content/blog/20-21/bestuur20_21.md
index b962fe4..bbbcd8f 100644
--- a/content/blog/20-21/bestuur20_21.md
+++ b/content/blog/20-21/bestuur20_21.md
@@ -3,6 +3,8 @@ title: "Zeusbestuur 2020-2021"
created_at: 6-7-2020
description: "Het gloriZeuse nieuw bestuur"
author: "Robbe Van Herck"
+tags:
+ - Bestuur
---
> Hallo mijn naam is Jasper en ik zou nog steeds sysadmin willen blijven
@@ -25,4 +27,3 @@ Voor iedereen die niet op de verkiezingen was of de uitslag vergeten is, hier ee
| Evenementen | Ruben De Facq |
Veel succes en veel plezier van jullie oud bestuur. Het gaat gegarandeerd onvergetelijk worden! 🧡
-
diff --git a/content/blog/20-21/wij-coden-voort.md b/content/blog/20-21/wij-coden-voort.md
index 645c0bc..daef3a9 100644
--- a/content/blog/20-21/wij-coden-voort.md
+++ b/content/blog/20-21/wij-coden-voort.md
@@ -3,6 +3,9 @@ title: "Wij coden voort"
created_at: 21-7-2020
description: "We mogen de kelder opnieuw openen"
author: "Jasper Devreker"
+tags:
+ - Corona
+ - General update
---
We hebben via het WVK[^wvk] doorgekregen dat we onze geliefde kelder terug mogen openen.
diff --git a/layouts/blogs.erb b/layouts/blogs.erb
index 41f6de0..78bcea3 100644
--- a/layouts/blogs.erb
+++ b/layouts/blogs.erb
@@ -19,24 +19,41 @@
<% end %>
<% end %>
+
+
- <% posts_in_year(item[:academic_year]).each_with_index.select {|e, i| i.even?}.map(&:first).each do |post| %>
+ <% posts_in_year_or_with_tag(item).each_with_index.select {|e, i| i.even?}.map(&:first).each do |post| %>
<%= render '/partials/_blog_preview.*', post: post %>
<% end %>
- <% posts_in_year(item[:academic_year]).each_with_index.reject {|e, i| i.even?}.map(&:first).each do |post| %>
+ <% posts_in_year_or_with_tag(item).each_with_index.reject {|e, i| i.even?}.map(&:first).each do |post| %>
<%= render '/partials/_blog_preview.*', post: post %>
<% end %>
-
- <% if posts_in_year(@item[:academic_year]).empty? %>
+ <% if posts_in_year_or_with_tag(item).empty? %>
Sorry.
No blog posts yet this year.
diff --git a/lib/helpers/archives.rb b/lib/helpers/archives.rb
index 68ec04f..7915c51 100644
--- a/lib/helpers/archives.rb
+++ b/lib/helpers/archives.rb
@@ -3,8 +3,8 @@ module ArchiveHelper
# Set.to_a to prevent duplicates
Set.new(items
.find_all('/blog/*/*')
- .map { |i| i.identifier.to_s[/\d\d-\d\d/] })
- .to_a
+ .map { |i| i.identifier.to_s.split('/')[-2] })
+ .to_a
.sort
.push(@config[:academic_year])
.uniq
@@ -14,6 +14,20 @@ module ArchiveHelper
academic_years.reverse.map { |y| [y, items["/blog/#{y}.html"]] }
end
+ def tags
+ # Set.to_a to prevent duplicates
+ Set.new(items
+ .find_all('/blog/*/*')
+ .flat_map { |i| i[:tags] || [] })
+ .to_a
+ .sort
+ .uniq
+ end
+
+ def tag_blog_items
+ tags.map { |y| [y, items["/blog/#{y}.html"]]}
+ end
+
def pretty_year(year)
year = year.scan(/\d\d/)
"'#{year[0]} - '#{year[1]}"
@@ -22,4 +36,18 @@ module ArchiveHelper
def posts_in_year(y)
items.find_all("/blog/#{y}/*").sort_by { |x| x[:created_at] }.reverse
end
+
+ def posts_with_tag(tag)
+ items
+ .find_all('/blog/*/*')
+ .filter{|i| (i[:tags] || []).include? tag }
+ end
+
+ def posts_in_year_or_with_tag(item)
+ if item[:is_yearly]
+ posts_in_year(item[:academic_year])
+ else
+ posts_with_tag(item[:tag])
+ end
+ end
end
diff --git a/lib/helpers/preprocess.rb b/lib/helpers/preprocess.rb
index 07ff4a9..a6eb65e 100644
--- a/lib/helpers/preprocess.rb
+++ b/lib/helpers/preprocess.rb
@@ -56,7 +56,7 @@ module PreprocessHelper
i.update_attributes(
# Tag all posts with article (for Blogging helper)
kind: 'article',
- academic_year: i.identifier.to_s[/\d\d-\d\d/],
+ academic_year: i.identifier.to_s[/\d-\d/],
created_at: Date.parse(i[:created_at])
)
end
@@ -72,7 +72,7 @@ module PreprocessHelper
years.each do |year|
@items.create(
'',
- { academic_year: year, title: type },
+ { academic_year: year, title: type, is_yearly: true },
"/#{type.downcase}/#{year}.html"
)
end
@@ -84,6 +84,21 @@ module PreprocessHelper
)
end
+ def create_tagly_items(type)
+ type = type.to_s
+ tags = @items.find_all("/#{type.downcase}/*/*")
+ .flat_map { |i| i[:tags] || [] }
+ .uniq
+
+ tags.each do |tag|
+ @items.create(
+ '',
+ { tag: tag, title: type, is_yearly: false },
+ "/#{type.downcase}/#{tag}.html"
+ )
+ end
+ end
+
def convert_event_time_to_timestamps
@items.find_all('/events/*/*.md').each do |event|
# HACK: Strings in a format like "2017-10-05T20:45:00+0200" automatically get converted to Time