Fix 'ontdek verenigingen' pagina.

Voeg thema's preprocessor toe
Zorg voor opsplitsing tussen projecten en verenigingen
This commit is contained in:
mcbloch 2020-08-29 00:09:04 +02:00
parent a8190433f0
commit 733054f9ae
13 changed files with 136 additions and 63 deletions

23
Rules
View file

@ -1,6 +1,21 @@
#!/usr/bin/env ruby
compile '/verenigingen/*.md' do
preprocess do
# Fetch a list of theme names from all items and construct items from them
themas = @items.map { |i| i[:themas] }.flatten.uniq.compact
themas.each do |thema|
content = ''
attributes = {
naam: thema,
verenigingen: @items.filter{|i| i[:themas] and i[:themas].include?(thema)}.flatten.uniq.compact
}
identifier = "/themas/#{thema}"
@items.create(content, attributes, identifier)
end
end
compile '/{verenigingen,projecten}/*.md' do
filter :kramdown
layout '/vereniging.*'
layout '/default.*'
@ -21,6 +36,12 @@ compile '/konventen/*.md' do
write ext: 'html'
end
compile '/themas/*' do
layout '/thema.*'
layout '/default.*'
write ext: 'html'
end
compile '/homepage.md' do
filter :kramdown
layout '/homepage.*'

View file

@ -0,0 +1,5 @@
---
naam: Massacantus
verkorte_naam: Massacantus
konvent: massacantus
---

View file

@ -1,5 +1,5 @@
---
naam: Verenigingen
naam: Ontdek verenigingen
navigable: true
order: 2
---

View file

@ -1,6 +1,5 @@
---
naam: DSR
verkorte_naam: DSR: Facultaire Studentenraad Dierengeneeskunde
naam: Facultaire Studentenraad Dierengeneeskunde
verkorte_naam: DSR
konvent: gsr
---

View file

@ -1,27 +1,29 @@
# Stappenplan om een vereniging toe te voegen
1. maak een bestand met als naam `verenigingsnaam.md`
2. vul dit bestand in met volgende template
```
---
naam: <naam van de vereniging>
verkorte_naam: <verkorte naam van de vereniging>
konvent: <afkoring van het konvent waartoe de vereniging behoort>
themas:
<één of meer lijnen van het volgende formaat om te vermelden in welke thema's de vereniging hoort>
- <themanaam>
website: <link naar de website van de vereniging>
contact: <mailadres van de vereniging>
social:
<één of meer keren 2 lijnen van het volgende formaat om de sociale media van de vereniging te vermelden
- platform: <naam van het platform, bv. facebook, twitter, instagram...>
link: <de link naar het sociaal medium van de vereniging op bovenstaand platform>
---
```
---
naam: <naam van de vereniging>
verkorte_naam: <verkorte naam van de vereniging>
konvent: <afkoring van het konvent waartoe de vereniging behoort>
themas:
<één of meer lijnen van het volgende formaat om te vermelden in welke thema's de vereniging hoort>
- <themanaam>
website: <link naar de website van de vereniging>
contact: <mailadres van de vereniging>
social:
<één of meer keren 2 lijnen van het volgende formaat om de sociale media van de vereniging te vermelden
- platform: <naam van het platform, bv. facebook, twitter, instagram...>
link: <de link naar het sociaal medium van de vereniging op bovenstaand platform>
---
<één of meer lijnen beschrijving van de vereniging>
```
<één of meer lijnen beschrijving van de vereniging>
```
3. sla dit bestand op
4. surf naar https://github.ugent.be/GentseStudentenraad/durfdoen-2.0/tree/verenigingen/content/verenigingen
4. surf naar https://github.ugent.be/ZeusWPI/durfdoen-2.0/tree/master/content/verenigingen
5. klik rechtsboven op de knop "upload files"
6. upload het bestand dat je in stap 1 gemaakt hebt
7. zorg ervoor dat je onderaan de pagina gekozen hebt voor "Create a *new branch* for this commit and start a pull request ..."
8. druk op de knop commit changes
Om een konvent toe te voegen volg je dezelfde stappen maar plaats je deze in de folder `konventen`.

View file

@ -1,10 +1,5 @@
---
naam: tags uitleg enzo
verkorte_naam: tags uitleg enzo
---
Alle themas (op lijn beginnende met `themas:` )
## Alle themas
(op lijn beginnende met `themas:` )
- diversiteit
- politiek-filosofisch
- internationaal
@ -19,7 +14,8 @@ Alle themas (op lijn beginnende met `themas:` )
- events
- studentenraden
Alle konventen (op lijn beginnende met `konvent:` )
## Alle konventen
(op lijn beginnende met `konvent:` )
- WVK: Werkgroepen en Verenigingen
- IK: Internationaal
- KK: Kultuur

View file

@ -31,15 +31,15 @@
<% end %>
<% end %>
<div class="thema-container">
<p><span class="thema-title">Thema's:</span>
<% if item[:themas] %>
<ul>
<% for thema in item[:themas] %>
<li><%= thema %></li>
<% end %>
</ul>
<p><span class="thema-title">Thema's:</span>
<ul>
<% for thema in item[:themas] %>
<li><%= thema %></li>
<% end %>
</ul>
</p>
<% end %>
</p>
</div>
</div>
<% if item[:verenigingen] %>
@ -51,4 +51,4 @@
</div>
<% end %>
</div>
<% end %>
<% end %>

9
layouts/thema.erb Normal file
View file

@ -0,0 +1,9 @@
<div class="content-wrapper">
<h1> <%= item[:naam] %> </h1>
<div class="details-wrapper">
<div class="details-container details-text">
<%= yield %>
</div>
<%= render '/partials/detail.*' %>
</div>
</div>

View file

@ -1,9 +1,9 @@
<div class="content-wrapper">
<h1> <%= item[:naam] %> </h1>
<div class="details-wrapper">
<h1> <%= item[:naam] %> </h1>
<div class="details-wrapper">
<div class="details-container details-text">
<%= yield %>
<%= yield %>
</div>
<%= render '/partials/detail.*' %>
</div>
</div>
</div>

View file

@ -1,15 +1,31 @@
<h1> Themas </h1>
<ul>
<% for theme in themes %>
<%= "<img src=/assets/konventen/" ++ theme.tr(" ", "_") ++ ".png alt=" ++ theme %>
<li> <%= link_to(theme, "/thema/"++theme.tr(" ", "_")) %> </li>
<% end %>
</ul>
<div class="flex-horz">
<div class="horz-child">
<h1> Themas </h1>
<ul>
<% for thema in themas %>
<img src="<%= image_url(thema) %>" alt="<%= thema[:naam] %>">
<li> <%= link_to(thema[:naam], thema) %> </li>
<% end %>
</ul>
</div>
<div class="horz-child">
<h1> Konventen en projecten </h1>
<ul>
<% for item in konventen_and_projecten %>
<img src="<%= image_url(item) %>" alt="<%= item[:naam] %>">
<li> <%= link_to(item[:naam], item) %> </li>
<% end %>
</ul>
</div>
</div>
<h1> Konventen en projecten </h1>
<ul>
<% for konvent in konvents %>
<%= "<img src=/assets/konventen/" ++ konvent.tr(" ", "_") ++ ".png alt=" ++ konvent %>
<li> <%= link_to(konvent, "/thema/"++konvent.tr(" ", "_")) %> </li>
<% end %>
</ul>
<style>
.flex-horz {
display: flex; /* or inline-flex */
flex-direction: row;
}
.horz-child {
flex-basis: auto;
flex-grow: 1;
}
</style>

View file

@ -1,22 +1,47 @@
# frozen_string_literal: true
# Helpers for navbar partial
module VerenigingenLists
# Helpers for navbar partial
def current_child_of(item)
child_of(item, @item)
end
def child_of(parent, child)
children_of(parent).include?(child)
end
# Returns every navigable item
# A navigable item contains the :navigable attribute
# Optionally contains an order attribute, determining the order in the navbar
def themes
@items.find_all("**/verenigingen/*").map{|x| x[:themas]}.flatten.uniq.compact
end
def konvents
@items.find_all("**/verenigingen/*").map{|x| x[:konvent]}.uniq.compact
def konventen
@items.find_all("**/konventen/*").to_a
end
end
def projecten
@items.find_all("**/projecten/*").to_a
end
def konventen_and_projecten
konventen.union(projecten)
end
def verenigingen
@items.find_all("**/verenigingen/*").map{|x| {
"naam" => x[:naam],
"verkorte_naam" => x[:verkorte_naam],
"konvent" => x[:konvent],
"themas" => x[:themas]
}}.to_a
end
def abbreviation(item)
item.identifier.without_ext.split('/').last
end
def image_url(item)
"https://aniekwendt.nl/wp-content/upload_folders/aniekwendt.nl/mijn-puppy-komt-niet-als-ik-roep.jpg"
end
def themas
@items.find_all("**/themas/*")
end
end