Merge branch 'master' into gitmetadata

This commit is contained in:
Maxime 2021-03-18 01:43:23 +01:00 committed by GitHub
commit 80bb532304
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
62 changed files with 1459 additions and 267 deletions

View file

@ -1,2 +1,3 @@
---
BUNDLE_PATH: "vendor/bundle"
BUNDLE_WITH: "production"

2
.gitignore vendored
View file

@ -24,3 +24,5 @@ crash.log*
.author-information
.fb_token
/vendor/

View file

@ -1 +1 @@
2.6.5
3.0.0

View file

@ -27,8 +27,6 @@ branches:
only:
- master
rvm:
- 2.6.5
notifications:
slack:
secure: tej68wbYns4DYg488iz+4ncU3/CHJvG/5c1qntGcEjti6vZp24atuH32BzNMY+gqa5ftZtcRfqIiJ0I0tkbiFWEDzjSk89bgjG4sgwXq1gMqi/Fj4bqEpjU5m7QLa786q4UfYyTF+srca1fHPLVS5REdGjRr2wxX+bcFnTRxreGCIrlNdWhoZPPJyS37R4RR9k+l5ZWZnqWgUN6bD448O8EzMRVRWoUSxQcJ6+u4QLpinEvem4iXe+WcHOyFfsNmavxGGMMpkOSed/tzA1l+gNpl224qOJl3yAk2qrGi4N6SOnSkeJFfUO5RzX56KDC/tcCL1oJpamhDmzDvRrbDNnCjSriv+g+PkXEjiwBF/tkZwIe7nMKyc9QF698Zvdgb6Ffbq21obsRnkkddkxijthdbUKMAIREPQuU7pXRL4ykPkBeB5GkNjPlErOooxvUHvQEVElJ8NMD4ychQqW6relaYJ0W0uy0QMvrtS+cHkpprZAOZzWLa3AdEOvD50kiS2hDhJway5JHJg/LMl3I6XVVMx6fNGdNWBcezeCqkDZM+nuMJqgAtQ+Tz8bwrHLCJgS5u0lQq/MbrDkYdpmmzvA5LXxn2SpjfOAlgiFKnSIwKSuuuwzW/zCEGdPo1pfBba2VfYAN4y1l863j5ph+eMtlHf7JG8mzIWTo3k+Jx8lQ=

13
Gemfile
View file

@ -5,6 +5,12 @@ gem 'nanoc'
gem 'icalendar' # ical files
gem 'kramdown'
# Kramdown math mode gems
gem 'kramdown-math-katex'
# Also needed for autoprefixing
gem 'mini_racer'
gem 'sassc'
gem 'typogruby'
@ -13,18 +19,19 @@ gem 'builder'
# Word counting gem (which takes special characters into account)
# for reading time
gem 'words_counted'
gem 'words_counted', git: 'https://github.com/werthen/words_counted'
group :development do
gem 'adsf'
# puma instead of thin, see https://github.com/nanoc/nanoc/issues/1499
gem 'puma'
gem 'highline'
gem 'terminal-notifier'
gem 'terminal-notifier-guard'
gem 'nanoc-live'
end
group :production do
# Faster css autoprefixing
gem 'mini_racer'
# Autoprefixing for class
gem 'autoprefixer-rails'
gem 'htmlcompressor'

View file

@ -1,26 +1,41 @@
GIT
remote: https://github.com/werthen/words_counted
revision: 735357e4d530c99d5c4c366d0c246ebffffd80de
specs:
words_counted (1.0.2)
GEM
remote: https://rubygems.org/
specs:
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
adsf (1.4.3)
adsf (1.4.5)
rack (>= 1.0.0, < 3.0.0)
autoprefixer-rails (9.8.6.3)
adsf-live (1.4.5)
adsf (~> 1.3)
em-websocket (~> 0.5)
eventmachine (~> 1.2)
listen (~> 3.0)
rack-livereload (~> 0.3)
autoprefixer-rails (10.2.4.0)
execjs
builder (3.2.4)
coderay (1.1.3)
colored (1.2)
concurrent-ruby (1.1.7)
cri (2.15.10)
concurrent-ruby (1.1.8)
cri (2.15.11)
ddmemoize (1.0.0)
ddmetrics (~> 1.0)
ref (~> 2.0)
ddmetrics (1.0.1)
ddplugin (1.0.2)
ddplugin (1.0.3)
diff-lcs (1.4.4)
equatable (0.6.1)
em-websocket (0.5.2)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
execjs (2.7.0)
ffi (1.13.1)
ffi (1.14.2)
formatador (0.2.5)
guard (2.16.2)
formatador (>= 0.2.4)
@ -41,41 +56,47 @@ GEM
concurrent-ruby (~> 1.0)
highline (2.0.3)
htmlcompressor (0.4.0)
icalendar (2.6.1)
http_parser.rb (0.6.0)
icalendar (2.7.0)
ice_cube (~> 0.16)
ice_cube (0.16.3)
json (2.3.1)
json (2.5.1)
json_schema (0.20.9)
katex (0.6.1)
execjs (~> 2.7)
kramdown (2.3.0)
rexml
kramdown-math-katex (1.0.1)
katex (~> 0.4)
kramdown (~> 2.0)
libv8 (8.4.255.0)
listen (3.2.1)
listen (3.4.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
lumberjack (1.2.7)
lumberjack (1.2.8)
method_source (1.0.0)
mini_portile2 (2.4.0)
mini_portile2 (2.5.0)
mini_racer (0.3.1)
libv8 (~> 8.4.255)
nanoc (4.11.18)
nanoc (4.12.0)
addressable (~> 2.5)
colored (~> 1.2)
nanoc-checking (~> 1.0)
nanoc-cli (= 4.11.18)
nanoc-core (= 4.11.18)
nanoc-cli (= 4.12.0)
nanoc-core (= 4.12.0)
nanoc-deploying (~> 1.0)
parallel (~> 1.12)
tty-command (~> 0.8)
tty-which (~> 0.4)
nanoc-checking (1.0.0)
nanoc-checking (1.0.1)
nanoc-cli (~> 4.11, >= 4.11.15)
nanoc-core (~> 4.11, >= 4.11.15)
nanoc-cli (4.11.18)
nanoc-cli (4.12.0)
cri (~> 2.15)
diff-lcs (~> 1.3)
nanoc-core (= 4.11.18)
nanoc-core (= 4.12.0)
zeitwerk (~> 2.1)
nanoc-core (4.11.18)
nanoc-core (4.12.0)
concurrent-ruby (~> 1.1)
ddmemoize (~> 1.0)
ddmetrics (~> 1.0)
@ -86,26 +107,37 @@ GEM
tomlrb (~> 1.2)
tty-platform (~> 0.2)
zeitwerk (~> 2.1)
nanoc-deploying (1.0.0)
nanoc-deploying (1.0.1)
nanoc-checking (~> 1.0)
nanoc-cli (~> 4.11, >= 4.11.15)
nanoc-core (~> 4.11, >= 4.11.15)
nanoc-live (1.0.0)
adsf-live (~> 1.4)
listen (~> 3.0)
nanoc-cli (~> 4.11, >= 4.11.14)
nanoc-core (~> 4.11, >= 4.11.14)
nenv (0.3.0)
nokogiri (1.10.10)
mini_portile2 (~> 2.4.0)
nio4r (2.5.5)
nokogiri (1.11.1)
mini_portile2 (~> 2.5.0)
racc (~> 1.4)
notiffany (0.1.3)
nenv (~> 0.1)
shellany (~> 0.0)
pandoc-ruby (2.1.4)
parallel (1.19.2)
pastel (0.7.4)
equatable (~> 0.6)
parallel (1.20.1)
pastel (0.8.0)
tty-color (~> 0.5)
pry (0.13.1)
pry (0.14.0)
coderay (~> 1.1)
method_source (~> 1.0)
public_suffix (4.0.5)
public_suffix (4.0.6)
puma (5.2.1)
nio4r (~> 2.0)
racc (1.5.2)
rack (2.2.3)
rack-livereload (0.3.17)
rack
rainpress (1.0.1)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
@ -119,23 +151,23 @@ GEM
slow_enumerator_tools (1.1.0)
terminal-notifier (2.0.0)
terminal-notifier-guard (1.7.0)
thor (1.0.1)
thor (1.1.0)
tomlrb (1.3.0)
tty-color (0.5.2)
tty-command (0.9.0)
pastel (~> 0.7.0)
tty-color (0.6.0)
tty-command (0.10.1)
pastel (~> 0.8)
tty-platform (0.3.0)
tty-which (0.4.2)
typogruby (1.0.18)
rubypants
uglifier (4.2.0)
execjs (>= 0.3.0, < 3)
w3c_validators (1.3.5)
w3c_validators (1.3.6)
json (>= 1.8)
nokogiri (~> 1.6)
words_counted (1.0.2)
rexml (~> 3.2)
yui-compressor (0.12.0)
zeitwerk (2.4.0)
zeitwerk (2.4.2)
PLATFORMS
ruby
@ -149,9 +181,12 @@ DEPENDENCIES
htmlcompressor
icalendar
kramdown
kramdown-math-katex
mini_racer
nanoc
nanoc-live
pandoc-ruby
puma
rainpress
sassc
terminal-notifier
@ -159,8 +194,8 @@ DEPENDENCIES
typogruby
uglifier (>= 4.0.0)
w3c_validators
words_counted
words_counted!
yui-compressor
BUNDLED WITH
2.0.2
2.2.3

View file

@ -1,5 +1,5 @@
# zeus.ugent.be
[![Build Status](https://travis-ci.org/ZeusWPI/zeus.ugent.be.svg?branch=master)](https://travis-ci.org/ZeusWPI/zeus.ugent.be)
[![Build Status](https://api.travis-ci.com/ZeusWPI/zeus.ugent.be.svg?branch=master)](https://travis-ci.com/github/ZeusWPI/zeus.ugent.be)
[![Code Climate](https://codeclimate.com/github/ZeusWPI/zeus.ugent.be.png)](https://codeclimate.com/github/ZeusWPI/zeus.ugent.be)
[![PageSpeed](https://pagespeed-badges.herokuapp.com/?url=zeus.ugent.be&strat=desktop&showStratLabel=true)](https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fzeus.ugent.be&tab=desktop)
[![PageSpeed](https://pagespeed-badges.herokuapp.com/?url=zeus.ugent.be&strat=mobile&showStratLabel=true)](https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fzeus.ugent.be&tab=mobile)
@ -61,7 +61,7 @@ For manual deployment, run
```bash
# Build the site for production
bundle exec nanon --env=prod
bundle exec nanoc --env=prod
# Run checks
bundle exec nanoc --env=prod check --deploy
@ -72,6 +72,10 @@ bundle exec nanoc deploy --target public --env=prod
If you want to deploy this on your own system for whatever reason, just serve the files using a webserver like nginx or Apache.
## Uploading media files
Before using mediafiles on the site, upload them via https://zeus.ugent.be/zeuswpi/, our own custom [uploading service](https://github.com/ZeusWPI/ZeusWPI). You'll receive the server-filename which is available at the aforementioned url.
## Submitting a Pull Request
Once you've submitted a PR, it will automatically be deployed to (PR#).pr.zeus.gent, for easier reviewing.

16
Rules
View file

@ -4,6 +4,7 @@
require 'json'
require 'icalendar'
# Important!!!
# First ignore the node_modules, we do not need any of it on the site directly.
ignore '/node_modules/**/*'
@ -24,6 +25,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|
@ -101,7 +104,7 @@ end
compile '/blog/*/*.md' do
filter :erb
layout '/blogpost.md'
filter :kramdown
filter :kramdown, {math_engine: :katex}
filter :typogruby
layout '/blogpost.erb'
@ -158,7 +161,7 @@ end
# Note drive/verslagen is 'linked' as a data source to /about/verslagen/
compile '/about/verslagen/*/*.md', rep: :pdf do
filter :pandoc_pdf, args: { f: :markdown, :'pdf-engine' => 'xelatex' } if production?
filter :pandoc_pdf, args: { f: :markdown, 'pdf-engine': 'xelatex', template: 'templates/report.tex' } if production?
write ext: (production? ? 'pdf' : 'md')
end
@ -195,10 +198,13 @@ compile '/assets/scripts/**/*.js' do
filter :uglify_js, harmony: true if production?
end
ignore '/assets/stylesheets/includes/**/*'
ignore '/data/**/*'
ignore '/assets/stylesheets/includes/**/*'
compile '/assets/stylesheets/**/*.scss' do
# This filter is necessary for the workaround present in main.scss and deals with out of date dependencies
filter :erb
sass_opts = {
syntax: :scss,
load_paths: ['content/assets/stylesheets']
@ -235,6 +241,10 @@ route '/**/*.{erb,html,md}' do
"#{item.identifier.without_ext}/index.html"
end
route %r[/well-known/(.+)] do |rest|
"/.well-known/" + rest[0]
end
# Let anything else simply pass through
passthrough '/**/*'

View file

@ -28,7 +28,7 @@ subnavigation:
</div>
<div class="content">
<p>Laatst bijgewerkt op <strong><time datetime="2020-07-26">26 juli 2020</time></strong>.
<p>Laatst bijgewerkt op <strong><time datetime="2021-01-07">7 januari 2021</time></strong>.
</p>
<p>Zeus WPI biedt een waaier aan diensten en projecten aan aan haar leden en het algemene publiek. Met dit privacybeleid wil ze aangeven hoe en waarvoor ze data verzamelt.</p>

View file

@ -23,12 +23,3 @@ Daarnaast gebruiken de apps andere diensten van derden. Indien u gebruik maakt v
##### API
Bij het gebruik van de API worden enkel technische data verzameld.
##### Assistent
Bij het gebruik van *Hydra van de UGent* in de Google Assistent gebruiken we deze diensten:
- **Technische informatie**, zoals serverlogs (zie de paragraaf [_Technische gegevens_](#technisch).
- **Dialogflow**, voor de gespreksmogelijkheden (d.w.z. verstaan wat u bedoelt). Deze data is onderhevig aan het privacybeleid van [Google](https://policies.google.com/privacy)
Dialogflow verzamelt geen persoonlijke data. Om de herkenning van de gesprekken tussen u en *Hydra van de UGent* te verbeteren, slaat Dialogflow de inhoud van de gesprekken in tekstuele vorm op. Deze kunnen door het bestuur van Zeus of de medewerkers van het Hydra-project beoordeeld worden, om zo de nauwkeurigheid van de herkenning te verbeteren.

View file

@ -13,7 +13,7 @@ subnavigation:
<% if current_sponsoring_members.nil? %>
Nog geen sponsorende leden voor dit academiejaar. Interesse? Contacteer het bestuur.
<% else %>
<% current_sponsoring_members.each do |member| %>
<% current_sponsoring_members.shuffle.each do |member| %>
<div id="<%= member[:nickname] %>" class="box sponsoring-member">
<article class="columns is-mobile">
<div class="column is-gapless is-narrow logo-wrapper">

View file

@ -66,21 +66,21 @@
}
.blog-preview {
position: relative;
// Fadeout
&::after {
content: '';
position: absolute;
bottom: 20px;
left: 0;
/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#ffffff+0,ffffff+100&0+0,1+100;White+to+Transparent */
background: -moz-linear-gradient(top, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=0 ); /* IE6-9 */
height: 100px;
width: 100%;
.blogpreview-heading {
display: flex;
> a {
flex-grow: 1;
margin-bottom: 0;
display: inline-block;
}
}
> .blogpreview-extra {
color: #7a7a7a;
display: inline-block;
margin-bottom: 5px;
}
> .blogpreview-tags {
color: #7a7a7a;
}
}

View file

@ -223,3 +223,11 @@ footer.footer {
.has-small-caps {
font-variant: small-caps;
}
.underline--magical {
background-image: -webkit-linear-gradient(to right, $zeus-orange, #FFFFFF); /* Chrome 10-25, Safari 5.1-6 */
background-image: linear-gradient(to right, $zeus-orange, #FFFFFF); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
background-repeat: no-repeat;
background-size: 100% 0.15em;
background-position: 0 99%;
}

View file

@ -1,15 +1,14 @@
/* KEEP THIS VVVV */
/* HACK The following line of code does nothing. It only serves as a way for nanoc to recognize dependencies with all the sub scss files */
// <% @items.find_all('/assets/stylesheets/includes/*').each {|e| e.raw_content } %>
/* KEEP THIS ^^^^ */
@import "includes/variables";
@import "node_modules/bulma/bulma";
@import "node_modules/bulma-divider/dist/css/bulma-divider";
@import "node_modules/bulma-timeline/dist/css/bulma-timeline";
// TODO: Remove this once FF64.0b2+ fixes this fustercluck
@-moz-document url-prefix() {
.tile {
min-height: auto;
}
}
// Sticky footer
body {
@ -41,4 +40,4 @@ body {
@import "includes/search";
@import "includes/about";
@import "includes/privacy";
@import "includes/toc";
@import "includes/toc";

View file

@ -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,

View file

@ -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_)

View file

@ -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! 🧡

View file

@ -0,0 +1,27 @@
---
title: "Warme eindejaarsgroetjes"
created_at: 19-12-2020
description: "virtuele knuffels voor iedereen <3"
author: "Ruben De Facq"
tags:
- Pannenkoeken
- Eindejaar
---
Liefste Zeusjes,
Het is zover: het jaar 2020 is op zijn einde.
Het was een woelige periode die zeker niet gemakkelijk is voorbij gegaan. Toch hebben we nog heel wat evenementen kunnen organiseren en de Zeussfeer sterk kunnen houden. Zowel even irl in het begin van het semester, alsook op online events, onze <a href="http://chat.zeus.gent/">Mattermost</a> en nu zelfs Discord.
Na een geslaagde en gezellige P&J-codenight, dit jaar 100% online, met 100% meer diverse pannenkoeken, is het tijd om even te pauzeren en in de examenperiode te vliegen!
Bedankt om zo talrijk aanwezig te zijn en de pannenkoekensfeer samen met ons op te snuiven.
<img src="https://zeus.ugent.be/zeuswpi/KUXYVpuv.jpg" />
Het bestuur wenst jullie veel moed toe. Doe het goed 👍
Toch even een dipmomentje, of heb je het moeilijk om te concentreren op je eentje? Spring dan even binnen op onze
<a href="http://chat.zeus.gent/">Mattermost</a> en wie weet vind je je nieuwe online studiebuddy <3
Tot 2021! Of het nu online of offline is, we doen ons best om jullie allemaal op een of andere manier terug te zien.
Misschien op afstand,
Maar met nog steeds dezelfde warme liefde
~Je Zeus WPI-Bestuur <3 🎄

View file

@ -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
---
We hebben via het WVK[^wvk] doorgekregen dat we onze geliefde kelder terug mogen openen.

View file

@ -1,18 +1,20 @@
---
title: 'Talk: plaintext accounting'
description: 'Felix en Francis komen praten over plain text accounting'
title: "Talk: plaintext accounting"
description: "Felix en Francis komen praten over plain text accounting"
created_at: 17-09-2020
time: '05-10-2020 18:00'
end: '05-10-2020 20:00'
location: 'Auditorium A0, Gebouw S9, Campus Sterre (Krijgslaan 281 , 9000 Gent)'
time: "05-10-2020 18:00"
end: "05-10-2020 20:00"
location: "Auditorium A0, Gebouw S9, Campus Sterre (Krijgslaan 281 , 9000 Gent)"
locationlink: $s9
tags:
- Talk
---
Accounting of boekhouden is het bijhouden van de stroming van waardevolle goederen zoals geld of tijd. Voornamelijk gebruikt door bedrijven kan je ook boekhouden voor je eigen leven, en ook daar kan het duidelijkheid brengen, helpen om uitgaven te plannen, budget bij te houden en dergelijke.
Plain text accounting is een verzamelnaam voor een aantal tools die een of meerdere eenvoudige tekstbestanden, de journalen, analyseren. Dit maakt ons informatici natuurlijk gelukkig, want dit zorgt er voor dat we de commandoprompt, versiebeheer en het gebruik van onze favoriete tekstverwerker cadeau krijgen.
In deze talk geven Felix en Francis je een korte introductie tot boekhouden, specifiek dubbel boekhouden (*double entry accounting*), met behulp van [hledger](https://hledger.org/) en [ledger](https://ledger-cli.org/).
In deze talk geven Felix en Francis je een korte introductie tot boekhouden, specifiek dubbel boekhouden (_double entry accounting_), met behulp van [hledger](https://hledger.org/) en [ledger](https://ledger-cli.org/).
### Door de coronaregelingen ben je verplicht je in te schrijven.

View file

@ -9,6 +9,8 @@ locationlink: $s9
facebook: //www.facebook.com/events/2759136070856741/
banner: //zeus.ugent.be/zeuswpi/Itsb0YbN.png
header_text_background: true
tags:
- Code Hacking
---
@ -31,4 +33,3 @@ Er kunnen snacks en drank gekocht worden op het event. Er zal ook om takeaway ge
[hacktob]: https://hacktoberfest.digitalocean.com/
[gandalf]: https://event.fkgent.be/events/305

View file

@ -2,22 +2,28 @@
title: Esoterische kennismakings-avond
description: Maak kennis met Zeus WPI op een avond vol exotische en frustrerende programmeertalen
created_at: 17-09-2020
time: '19-10-2020 17:30'
end: '19-10-2020 22:30'
location: 'Auditorium A0, Gebouw S9, Campus Sterre'
time: "28-10-2020 18:00"
end: "28-10-2020 22:30"
location: "Auditorium A0 & A1, Gebouw S9, Campus Sterre"
locationlink: $s9
facebook: //www.facebook.com/events/434910217479925/
banner: //zeus.ugent.be/zeuswpi/7k6hvPJw.webp
image: //zeus.ugent.be/zeuswpi/a28GvLuO.png
header_text_background: true
header_text_background_color: 'rgba(80, 50, 80, 0.75)'
header_text_background_color: "rgba(80, 50, 80, 0.75)"
tags:
- Esoterisch
- Code Hacking
---
UPDATE: datum veranderd naar 28 oktober!
Geen betere manier om Java meer te appreciëren dan kennis te maken met een esoterische programmeertaal. Dit zijn talen die bepaalde programmeerconcepten tot in het absurde trekken. Ondertussen leer je Zeus WPI kennen, en kunnen we samen vloeken op de meest verschrikkelijke uitvindingen in de geschiedenis van de informatica. Geen voorkennis programmeren vereist (het is misschien zelfs beter).
Registreer je [hier][gandalf] om mee te genieten van alles wat een programmeertaal niet zou moeten zijn.
Registeren is verplicht!
Er worden snacks en drinken voorzien om te kopen. Er wordt ook eten opgehaald bij een takeaway via Haldis.
Let op, er zijn nieuwe corona maatregelen. Er wordt geen drank noch eten voorzien. Mondmasker is ook verplicht gedurende het hele evenement.
![xkcd/useless_language_created](https://zeus.ugent.be/zeuswpi/Sa7IfExB.png)

View file

@ -0,0 +1,19 @@
---
title: "Zeus Doet Dungeons & Dragons!"
description: Zeus Doet Dungeons & Dragons (en andere tabletop RPG's)-avond
created_at: 18-11-2020
time: "28-11-2020 19:00"
location: "Bij je thuis"
banner: https://zeus.ugent.be/zeuswpi/XqCSUGHo.jpg
facebook: https://www.facebook.com/events/1522197801317546/
header_text_background: true
tags:
- DnD
---
#### De grote Zeus Doet Dungeons & Dragons (en andere tabletop RPG's)-avond!
Heb jij zin om op avontuur te gaan als een of ander fantastisch personage in een magische wereld? Schrijf je dan snel in via
[dit formulier](https://docs.google.com/forms/d/e/1FAIpQLSdQQixoL2FBlnhLekAYpX_1PekZd_Bz3hreX3lOYkNb7-EWYQ/viewform) of via een berichtje naar uw lievelings real-life⁻DM (a.k.a. het bestuur) en dan reserveren we een plaatsje voor jou in onze (virtuele) kelder.
PS: wil je zelf eens graag het heft in eigen handen nemen en Dungeon Master zijn, laat ons dan snel iets weten, dan proberen we voor jou ook _slachtoffers_, euh, deelnemers vinden.

View file

@ -1,46 +1,38 @@
---
title: 'Geeks, Attack! IX'
title: "Geeks, Attack! IX"
description: Zeus' negende LAN-Party!
created_at: 17-09-2020
time: '30-10-2020 14:00'
end: '30-10-2020 23:00'
facebook: //www.facebook.com/events/434123983875135/
image: //zeus.ugent.be/zeuswpi/pb6LS30N.png
banner: //zeus.ugent.be/zeuswpi/Irue5nha.jpg
location: 'Therminal, Hoveniersberg 24 9000 Gent'
locationlink: $therminal
soon: true
time: "30-10-2020 14:00"
location: "Bij je thuis"
banner: https://zeus.ugent.be/zeuswpi/KK0m_nz7.jpg
facebook: //www.facebook.com/events/388263258991828/
tags:
- Lan Party
- Gaming
---
Inschrijvingen zullen binnenkort openen! Meer informatie volgt nog, dus houd zeker al je Zeus communicatiekanalen in het oog.
# Game Over! Try Again.
Tijd om weer een gezellig nachtje te gamen, want Zeus WPI organiseert opnieuw zijn jaarlijkse LAN-party! Voor het negende jaar op rij zal studentenhuis De Therminal (Hoveniersberg 24, 9000 Gent) weer een hele nacht beschikbaar zijn om je favoriete games te spelen.
Tijd om weer een gezellig nachtje te gamen, want Zeus WPI organiseert opnieuw zijn jaarlijkse LAN-party! Dit jaar in samenwerking met WiNA! Voor het negende jaar op rij weer een hele nacht om je favoriete games te spelen met je vrienden, deel te nemen aan toernooien en meer.
**Datum**: Vrijdag 30 oktober - Vrijdag 30 oktober
**Datum**: Vrijdag 30 oktober - Zaterdag 31 oktober
**Tijd**: 14:00 tot 23:00
**Tijd**: 14:00 tot in de vroege uurtjes
**Locatie**: Therminal, Hoveniersberg 24, 9000 Gent
**Prijs**: €2 (inclusief een drankje)
## Praktisch
De deuren openen om **14:00**. We vragen een kleine inkom van €2, die gebruikt zal worden om de prijzenpot van onze competities aan te dikken. Drank en snacks kan je ter plekke kopen en we voorzien ook een aantal runs naar een pizzeria. Zo kan je zo lang mogelijk aan je scherm gekluisterd blijven!
**Locatie**: Gezellig bij je thuis
## Toernooien
Er is niet alleen aanzien en eer te verdienen, maar ook nog **fancy prijzen**. Gewoon voor het spelen van je favoriete games! Denk je dat je goed bent in de games die je speelt? Laat ons bij het inschrijven dan ook zeker weten wat je graag speelt.
Denk je dat je goed bent in de games die je speelt? Kom je eer dan verdedigen tijdens een van onze toernooien. Laat ons bij het inschrijven dan ook zeker weten wat je graag speelt. Je kan je alvast verwachten aan een League of Legends en CS:GO toernooi, maar er zullen daarnaast ook nog enkele kleinere toernooien zijn.
## Zelf meebrengen
## Inschrijven
**Stekkerdozen** en **ethernetkabels**, anders zal je zonder zitten!
Vergeet ook zeker je computer niet.
Inschrijven kan je online doen via de volgende [google forms](https://docs.google.com/forms/d/1p-L4zH0eBHKL3Y3H_Qh7yWdw1Dhgmchb8Z4yr-r9tKY/). Dit kan tot op de avond van het event zelf.
Uit ervaring weten we dat het soms wat kouder kan worden in de Therminal 's nachts, dus breng zeker een trui of iets dergelijks mee! We doen echter ons best om de verwarming in orde te krijgen.
## Communicatie
## Sponsors en prijzen
De communicatie tijdens het event zal verlopen via [Discord](https://discord.gg/uxEfmDR). Verdere aankondigingen zullen ook daar gecommuniceerd worden.
To be decided.
Tot dan!
ZeusWPI - WiNA

View file

@ -1,16 +0,0 @@
---
title: 12UL Codeweek
image:
banner:
description: De 12 urenloop kriebels komen weer terug, hoe ver geraken we deze keer?
created_at: 11-10-2020
time: 02-11-2020
end: 06-11-2020
location: $s9
#locationlink:
soon: true
---
Een hele week om mee te helpen aan de 12UL! Dit zal vooral doorgaan in onze gezellige kelder.
Meer informatie over inschrijvingen volgt nog, dus hou je Zeus communicatiekanalen in de gaten!

View file

@ -1,16 +0,0 @@
---
title: Een boeiende talk!
image:
banner:
description:
created_at: 11-10-2020
time: 09-11-2020 19:00
location: Auditorium A0, S9
#locationlink:
soon: true
---
Zeus geeft een talk over... Surprise!
Boeiend zal het zijn. De onderwerpen nog even geheim.
Binnenkort nog meer informatie!

View file

@ -0,0 +1,70 @@
---
title: Pannenkoeken En Jenever Codenight
image: https://preppykitchen.com/wp-content/uploads/2019/08/panncake-feature-n-768x1088.jpg
banner: https://preppykitchen.com/wp-content/uploads/2019/08/panncake-feature-n-768x1088.jpg
header_text_background: true
description: Het online alternatief voor de klassieke pannenkoeken en jenever codenight. Gezelligheid alom!
created_at: 11-10-2020
time: 10-12-2020 18:00
location: Discord
---
Deze donderdag, 10 december, om 18u00 is het tijd voor de super gezellige P&J Codenight online op [Discord][discord]!
Pannenkoeken bakken en code schrijven, de beste manier om het semester af te sluiten. Om jullie extra te motiveren om de pan boven te halen laten we jullie foto's doorsturen. Iedereen die een foto doorstuurt van zichzelf met een (zelfgemaakte) pannenkoek maakt kans op een van onze prijzen, zoals je eigen Zeus notitieboekje of zelfs een Zeus T-shirt! Als je foto zelfgemaakte pannenkoeken bevat, krijg je zelfs een dubbele entry in de loting.
Foto's kun je doorsturen op het `~pannenkoeken` kanaal in onze [mattermost][mattermost]. Vermeld of wij je foto mogen gebruiken (op sociale media) voor bijvoorbeeld een collage.
Tijdens en na het pannenkoeken eten zitten we gezellig samen en schrijven we code, want een P&J codenight is natuurlijk geen P&J zonder code!
Zet zeker je pull requests die je schrijft in de P&J [codimd][p&jmd], zo maak je misschien ook kans op een prijs!
Zoek je inspiratie voor issues of iets makkelijks om mee te starten, kijk dan op onze issue lijst die op het event aanwezig zal zijn of vraag het aan een van de andere aanwezigen.
#### Planning
- 18u00: Start P&J op de Zeus Discord in de publieke kanalen. Ook externe personen zijn dus welkom om mee te coden!
- 19u00: Het moment om allemaal samen pannenkoeken te bakken. Neem je gsm of laptop mee en zet eventueel je webcam aan om allemaal gezellig iets te bakken.
Vergeet niet je ingrediënten op voorhand te kopen. Niet zeker wat je nodig hebt of hoe je pannenkoeken moet bakken? Geen zorgen, Zeus WPI voorziet een recept onderaan de pagina!
We zien je graag op deze gezellige avond!
~ Je liefste Zeus bestuur <3
[discord]: https://discord.gg/qt4fNkVZ9Y
[mattermost]: https://mattermost.zeus.gent
[p&jmd]: https://codimd.zeus.gent/s/1OMowODnO#
## Pannenkoeken bakken à la Zeus WPI
Pannenkoeken bakken, hoe moet dat eigenlijk?
Dit rijmpje helpt je al op weg:
Zeef je vanillesuiker en bloem
Maak een kuiltje en zeg eens boem
want nu is het tijd
voor het breken van eieren
en met een garde, roer tot een bescheidt
schenk de melk
roer tot licht beslag
En maak nu pannenkoeken voor elk
Vebrand, perfect?
Post het op de mattermost chat!
Toch niet zo evident en wat meer hulp nodig?
Voor een batch van pannenkoeken heb je nodig:
- zelfrijzende bloem: 250g
- melk: 500ml (precieze hoeveelheid naar eigen wens)
- eieren: 1-3 (hoeveel kan je er zelf leggen?)
- (vanilla)suiker: 30g (Ben je een Zoetje, voeg dan wat meer toe <3)
Zeef eventueel de bloem met de (vanille)suiker. Maak in het midden een kuiltje, breek daarin de eieren. Roer alles door elkaar met een garde.
Schenk beetje bij beetje je melk erbij terwijl je met je garde het beslag roert. Doe dit voorzichtig om klonters te vermijden.
Vind je het beslag nog te dik, voeg dan eventueel nog wat extra melk toe.
Bak de pannenkoeken in hete boter of olie.
Veel geluk met het bakken,
Awoo
~Foxie Boi <3

View file

@ -1,16 +0,0 @@
---
title: Cookies and Drinks codenight
image:
banner:
description: Een veilig alternatief voor de klassieke pannenkoeken en jenever codenight. Gezellig alom.
created_at: 11-10-2020
time: 08-12-2020 18:00
#location:
#locationlink:
soon: true
---
Zoals elk jaar wordt er afgesloten met een gezellige codenight samen. Wegens Corona zijn jenever en pannenkoeken niet van partij. Maar niet getreurd, the second best thing staat op het menu: cookies en drinks!
Kom nog een laatste keer langs bij Zeus voor de examenperiode start en geniet van samen werken aan coole Zeus projectjes. Want zelfs op 1,5m afstand kunnen we zo toch nog eens dicht bij elkaar zijn.
Meer informatie volgt nog. Hou dus zeker je Zeus communicatiekanalen in de gaten!

View file

@ -0,0 +1,22 @@
---
title: Movienight
description: Een Zeus Movienight!
created_at: 15-02-2021
time: "18-02-2021 20:00"
location: "Discord"
banner: "https://zeus.ugent.be/zeuswpi/O6DVTnF6.jpg"
header_text_background: true
---
# Zeus Movienight
Op **18 februari** organiseert Zeus een filmavond. Dit zal doorgaan op de Zeus [Discord](https://discord.gg/qWAPHbE) vanaf **20u**. De film die we bekijken? Daar kan je zelf mee in beslissen! Ga naar de Zeus Mattermost en stem op de film die je graag zou willen bekijken in de poll die is gepost in ~zeus-announcements. Dinsdagavond wordt de poll gesloten en de filmkeuze gemaakt.
Update: De film die is verkozen is Monty Python and the Holy Grail!
## Hoe werkt het praktisch?
Het principe van Bring Your Own Copy geldt. Zeus zal de film niet ter beschikking stellen. Om toch samen te kijken zal het programma [syncplay](https://syncplay.pl/) gebruikt worden. Het exacte startuur zal ook meegedeeld worden voor wie een medium gebruikt dat syncplay niet ondersteund. Hou ~events op Mattermost in de gaten voor meer details.
## Hoe zit het met eten en drinken?
Snacks & drinks zijn niet enkel welkom maar sterk aangeraden! Stuur een foto van jezelf in het ~events kanaal op Mattermost met je snacks & drinks om de gezelligheid te verdubbelen! (en wie weet win jij een Zeus-notitieboekje!)

View file

@ -0,0 +1,31 @@
---
title: Hashcode
description: Zeus organiseert een UGent Hashcode Hub
created_at: 14-02-2021
time: "25-02-2021 18:30"
end: "25-02-2021 23:00"
location: "Discord"
banner: "https://hashcode.withgoogle.com/resources/images/hero_2.jpg"
image: "https://zeus.ugent.be/zeuswpi/I9GAh7iy.png"
header_text_background: true
tags:
- Code Hacking
---
# Google Hashcode
Het is alweer zover, de Google Hashcode! Ook dit jaar zijn we van de partij met een virtuele hub. Google Hashcode is een wereldwijde programmeerwedstrijd van Google waarin je in een beperkte tijd een voorgeschoteld probleem moet oplossen. Je werkt hierbij in groepjes van 2 tot 4 personen samen naar een oplossing in een programmeertaal naar keuze.
De online kwalificatieronde gaat door op **25 februari om 18u30**. Deze keer niet in Auditorium A3 maar wel in onze Zeus [**Discord**](https://discord.gg/qWAPHbE). Ook niet-Zeusleden kunnen deelnemen!
## Registratie
Registreer voor **24 februari om 12u00** je team in onze hub!
Registreren kan je [hier](https://codingcompetitions.withgoogle.com/hashcode/) en een team maken of joinen kan je [hier](https://hashcodejudge.withgoogle.com/#/home) doen. Dit is ook waar je een hub kan selecteren, kies hier dan voor **Ghent University Hub**.
## Begint het al te kriebelen?
Bereid je optimaal voor op de wedstrijd door het voorbeeldprobleem op te lossen, die kan je zien zodra je je hebt geregistreerd. Opgaven van de vorige jaren kan je [hier](https://codingcompetitions.withgoogle.com/hashcode/archive) vinden.
Tot dan!

View file

@ -0,0 +1,29 @@
---
title: PlanetWars 2021
description: De start van PlanetWars 2021
created_at: 02-03-2021
time: '06-03-2021 20:00'
end: '06-03-2021 23:30'
location: 'Discord'
banner: 'https://zeus.ugent.be/zeuswpi/kuDGG1-5.png'
header_text_background: true
header_text_background_color: 'rgba(8, 22, 38, 0.8)'
tags:
- Code Hacking
---
# PlanetWars 2021
Na lange voorbereiding zijn we erg enthousiast om aan te kondigen dat deze zaterdag, 06/03, PlanetWars 2021 van start kan gaan.
## Wat is planetwars?
PlanetWars is een programmeerspelletje gemaakt voor en door zeusers, waarbij je een bot schrijft die het zal opnemen tegen de bots van je tegenspelers in een eenvoudig strategiespel. Het spelletje is zo gekozen dat het zeer eenvoudig is een simpele strategie te implementeren, maar toch voldoende uitdaging biedt voor wie zich geavanceerder voelt.
## Hoe verloopt dit verder?
We zullen een aantal avonden samenkomen om aan onze bots te coden en wat matches te spelen. Voor deze editie zullen we onze nieuwe gameserver gebruiken, waarmee we in real-time over het internet spelletjes kunnen spelen. Ideaal voor deze pandemie-editie!
Een basiskennis python zou moeten volstaan om deel te nemen. We voorzien een starterpack met een voorbeeldbot om mee te beginnen, [simplebot](https://github.com/ZeusWPI/planetwars-starterpack/blob/main/simple.py). Voel je zeker niet geintimideerd, we helpen je graag verder.
Dus: PlanetWars 2021 kickoff, deze zaterdag 06/03 vanaf 20h in de [ZeusDiscord](https://discord.gg/tsK2BRCJ2w)!

View file

@ -0,0 +1,19 @@
---
title: "Zeus Doet Dungeons & Dragons editie II!"
description: Zeus Doet Dungeons & Dragons (en andere tabletop RPG's)-avond 2
created_at: 03-03-2021
time: "13-03-2021 19:00"
location: "Bij je thuis"
banner: https://zeus.ugent.be/zeuswpi/XqCSUGHo.jpg
facebook: https://www.facebook.com/events/1522197801317546/
header_text_background: true
tags:
- DnD
---
#### De grote Zeus Doet Dungeons & Dragons (en andere tabletop RPG's)-avond II!
Heb jij zin om op avontuur te gaan als een of ander fantastisch personage in een magische wereld? Schrijf je dan snel in via
[dit formulier](https://forms.gle/1r4JTNBTazGMZxDcA) of via een berichtje naar uw lievelings real-life⁻DM (a.k.a. het bestuur) en dan reserveren we een plaatsje voor jou in onze (virtuele) kelder.
PS: wil je zelf eens graag het heft in eigen handen nemen en Dungeon Master zijn, laat ons dan snel iets weten, dan proberen we voor jou ook <del>slachtoffers</del> deelnemers te vinden.

View file

@ -0,0 +1,26 @@
---
title: Game night
image: https://zeus.ugent.be/zeuswpi/MQ_UkZ-O.webp
banner: https://zeus.ugent.be/zeuswpi/i4EpfEkZ.jpg
description: Among Us edition
created_at: 20-03-2021
time: 20-03-2021 20:00
end: 20-03-2021 23:30
location: online
header_text_background: true
tags:
- Lan Party
- Gaming
---
Zaterdag 20 maart organiseren we nog een Zeus game-avond!
We gaan alvast zeker Among Us (modded) spelen, maar voor de rest ben je vrij om samen gelijk welke games te spelen.
Vanuit Zeus hosten we op dit moment ook _Factorio_ en _Valhelsia 3 (modded Minecraft)_.
We gebruiken weer de Discord van de grote LAN-party, dus feel free om al je vrienden uit te nodigen
> [https://discord.gg/uxEfmDR](https://discord.gg/uxEfmDR)
Tot dan!

View file

@ -0,0 +1,29 @@
---
title: PlanetWars 2021.2
description: PlanetWars 2021 continued
created_at: 02-03-2021
time: 19-03-2021 20:00
end: 19-03-2021 23:30
location: "online"
banner: "https://zeus.ugent.be/zeuswpi/kuDGG1-5.png"
header_text_background: true
header_text_background_color: "rgba(8, 22, 38, 0.8)"
tags:
- Code Hacking
---
# PlanetWars 2021
Na een succesvolle start gaan we verder aan onze bots sleutelen op een tweede gezellige codenight.
## Wat is PlanetWars?
PlanetWars is een programmeerspelletje gemaakt voor en door Zeusers, waarbij je een bot schrijft die het zal opnemen tegen de bots van je tegenspelers in een eenvoudig strategiespel. Het spelletje is zo gekozen dat het zeer eenvoudig is een simpele strategie te implementeren, maar toch voldoende uitdaging biedt voor wie zich geavanceerder voelt.
## Hoe verloopt dit verder?
We komen samen om aan onze bots te coden en wat matches te spelen. We spelen op onze nieuwe gameserver, waarmee we in real-time over het internet spelletjes kunnen spelen. Ideaal voor deze pandemie-editie!
Een basiskennis Python zou moeten volstaan om deel te nemen. We voorzien een starterpack met een voorbeeldbot om mee te beginnen, [simplebot](https://github.com/ZeusWPI/planetwars-starterpack/blob/main/simple.py). Voel je zeker niet geïntimideerd, we helpen je graag verder.
Dus: Deze vrijdag 19/03 vanaf 20 uur in de [Zeus-Discord](https://discord.gg/tsK2BRCJ2w)!

View file

@ -0,0 +1,26 @@
---
title: Movie night
description: Een Zeus-filmavond!
created_at: 02-03-2021
time: 25-03-2021 20:00
end: 25-03-2021 23:00
location: "Discord"
banner: "https://zeus.ugent.be/zeuswpi/O6DVTnF6.jpg"
header_text_background: true
---
# Zeus Movie night
Op **25 maart** organiseert Zeus een tweede filmavond na het denderende success van de vorige vertoning. Dit zal opnieuw doorgaan op de Zeus [Zeus-Discord](https://discord.gg/qWAPHbE) vanaf **20u**. De film die we bekijken? Daar kan je zelf in meebeslissen! Ga naar de [Zeus-Mattermost](https://mattermost.zeus.gent) en stem op de film die je graag zou willen bekijken in de poll in ~zeus-announcements. Zondagavond (21/03) wordt de poll gesloten en de filmkeuze gemaakt.
## Hoe werkt het praktisch?
Het principe van Bring Your Own Copy geldt. Zeus zal de film niet ter beschikking stellen. Om toch samen te kijken zal het programma [syncplay](https://syncplay.pl/) gebruikt worden. Het exacte startuur zal ook meegedeeld worden voor wie een medium gebruikt dat syncplay niet ondersteunt.
Syncplay is makkelijk te installeren op verschillende besturingssystemen, maar zelf meekijken via een andere provider is zeker ook mogelijk!
Hou ~events op Mattermost in de gaten voor meer details.
## Hoe zit het met eten en drinken?
Snacks & drinks zijn niet enkel welkom maar sterk aangeraden! Stuur een foto van jezelf in het ~events-kanaal met je proviand om de gezelligheid te verdubbelen! (En wie weet win jij een Zeus-notitieboekje!)

View file

@ -0,0 +1,12 @@
---
title: "Humanitarian mapping"
description: met HotOSM
created_at: 17-03-2021
time: 10-04-2021
location: online
soon: true
tags:
- OSM
---
# TODO nog niet vastgelegd

View file

@ -0,0 +1,12 @@
---
title: Game Jam
description: Een interessante uitdaging
created_at: 02-03-2021
time: 02-04-2021
location: online
soon: true
tags:
- Gaming
---
# TODO nog niet vastgelegd

View file

@ -0,0 +1,12 @@
---
title: Lightning talks
description: Wist je dat...
created_at: 02-03-2021
time: 17-04-2021 19:00
location: Auditorium A0, S9
soon: true
tags:
- Talk
---
# TODO, nog niet vastgelegd

View file

@ -0,0 +1,10 @@
---
title: 12UL Coding
description: De 12 urenloop kriebels komen weer terug, hoe ver geraken we deze keer?
created_at: 02-03-2021
time: 01-01-2022
location: online
soon: true
---
# TODO nog niets over besproken

View file

@ -0,0 +1,9 @@
---
title: OBUS
description: Een hardware-spinoff van Keep Talking And Nobody Explodes waarin je zelf de onderdelen bouwt
created_at: 18-03-2021
time: 01-01-2022
soon: true
---
# TODO nog niets over besproken

View file

@ -0,0 +1,10 @@
---
title: Zeus zoekt bestuur
description: Wie gaat de uitdaging aan?
created_at: 17-03-2021
time: 12-05-2021
location: Studententuin
soon: true
---
# TODO

View file

@ -1,15 +1,14 @@
---
title: Workshop electronica
image:
banner:
description:
created_at: 11-10-2020
time: 23-11-2020 18:00
time: 01-01-2022
location: Auditorium A0, S9
locationlink: $s9
soon: true
---
# TODO nog niets over besproken
Al altijd meer willen leren over het hardware aspect van informatica? Voel je kriebels als je die zoete giftige geur ruikt na het solderen? Dan is deze workshop zeker voor jou!
Meer informatie volgt nog, dus hou zeker je Zeus communicatiekanalen in de gaten!

View file

@ -1,15 +1,17 @@
---
title: ZeusTP
image:
image:
banner:
description: Een HTTPizza spinoff waarbij we nog een laagje dieper de network stack induiken.
created_at: 11-10-2020
time: 16-11-2020 18:00
time: 01-01-2022
location: Auditorium A0, S9
locationlink: $s9
soon: true
---
# TODO nog niets over besproken
Elk jaar wordt HTTPizza gegeven. Dit jaar gaat Zeus er zelf voor. Leer meer over dit nieuwe (nog mysterieuze) netwerk laag met coole challenges en een gezellige sfeer.
Meer informatie volgt nog. Houd zeker de Zeus communicatiekanalen in de gaten!

View file

@ -1,63 +1,101 @@
<% content_for :head do %>
<META NAME="Title" CONTENT="Zeus WPI: Werkgroep informatica van de Universiteit Gent">
<META NAME="Keywords" CONTENT="zeus wpi, informatica, universiteit gent">
<META NAME="Description" CONTENT="Studentenvereniging van de informatica aan de Universiteit Gent. Informatie over o.a. Linux (downloads en lessen), programmeren, en internetbeveiliging.">
<meta property="og:title" content="Zeus WPI: WerkgroeP Informatica van de Universiteit Gent" />
<meta property="og:type" content="website" />
<meta property="og:image" content="https://zinc.zeus.gent" />
<meta property="og:description" content="Studentenvereniging van de informatica aan de Universiteit Gent. Informatie over o.a. Linux (downloads en lessen), programmeren, en internetbeveiliging." />
<META NAME="Title" CONTENT="Zeus WPI: Werkgroep informatica van de Universiteit Gent">
<META NAME="Keywords" CONTENT="zeus wpi, informatica, universiteit gent">
<META NAME="Description" CONTENT="Studentenvereniging van de informatica aan de Universiteit Gent. Informatie over o.a. Linux (downloads en lessen), programmeren, en internetbeveiliging.">
<meta property="og:title" content="Zeus WPI: WerkgroeP Informatica van de Universiteit Gent" />
<meta property="og:type" content="website" />
<meta property="og:image" content="https://zinc.zeus.gent" />
<meta property="og:description" content="Studentenvereniging van de informatica aan de Universiteit Gent. Informatie over o.a. Linux (downloads en lessen), programmeren, en internetbeveiliging." />
<% end %>
<% content_for :scripts do %>
<%= asset :js, :gamification %>
<%= asset :js, :gamification %>
<% end %>
<div id="homepage">
<div class="tile is-vertical is-ancestor">
<%= if studytime? then render '/tiles/blokmap.*'end %>
<% if studytime? %>
<%= render '/tiles/blokmap.*' %>
<% end %>
<!--next event -->
<div class="tile is-parent">
<%= render '/partials/_events_tile.*', event: front_page_events[0] %>
<div class="tile is-child">
<div class="block has-text-centered">
<span class="title is-2 underline--magical">Upcoming Events</span>
</div>
<% unless upcoming_events.empty? %>
<% upcoming_events.each do |event| %>
<div class="block">
<%= render '/partials/_events_tile.*', event: event %>
</div>
<% end %>
<% else %>
<div class="block content has-text-centered">
There are currently no upcoming events. If you have a suggestion, let us know on mattermost in <a href="https://mattermost.zeus.gent/zeus/channels/events">~events</a>!
<hr>
</div>
<% end %>
</div>
</div>
<div class="tile">
<div class="tile is-parent">
<div class="tile is-child">
<div class="block has-text-centered">
<span class="title is-2 underline--magical">Top Coders</span>
</div>
<div class="box gamification-tile">
<div class="content">
<div class="tile-header">
<h1 class="has-text-centered">
<a href="https://zeus.ugent.be/game">
<i class="fa fa-trophy" aria-hidden="true"></i>
</a>
</h1>
</div>
<div id="gamification-coders" >
<!-- EMPTY -->
</div>
</div>
</div>
<div class="block has-text-centered">
<span class="title is-2 underline--magical">Previous Events</span>
</div>
<% previous_events[0..3].each do |event| %>
<div class="block">
<%= render '/partials/_events_tile.*', event: event %>
</div>
<%end%>
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child">
<div class='content has-text-centered box'>
<h2>About Zeus WPI</h2>
<p>
Zeus WPI is the student association for Computer Science at Ghent University. Our goal is to provide a stimulating environment for motivated students looking to expand their skills by engaging in interesting real-world projects.
</p>
<p>
We organize various tech related talks by experts (eg. professors, PhD's, Richard Stallman, Julia Reda, ...), hands-on coding events and introductory lectures for cool technologies. Together we build interesting applications for Ghent University students (Hydra), for FaculteitenKonvent and 12urenloop, and ofcourse for ourselves.
</p>
</div>
<div class="block has-text-centered">
<span class="title is-2 underline--magical">Blogposts</span>
</div>
<% sorted_articles[0..3].each do |post| %>
<%= render '/partials/_blog_preview.*', post: post %>
<%end%>
</div>
</div>
</div>
<div class="tile">
<!--top coders -->
<div class="tile is-parent is-6">
<div class="tile is-child box gamification-tile">
<div class="content">
<div class="tile-header">
<h1 class="has-text-centered">
<a href="https://zeus.ugent.be/game">
<i class="fa fa-trophy" aria-hidden="true"></i>
</a>
</h1>
</div>
<div id="gamification-coders" >
<!-- EMPTY -->
</div>
</div>
<div class="tile is-parent">
<div class="tile is-child">
</div>
</div>
<!-- latest blogpost -->
<div class="tile is-6 is-parent">
<%= render '/partials/_blog_preview.*', post: sorted_articles.first %>
</div>
</div>
<div class="tile">
<div class="tile is-vertical">
<% front_page_events[1..3].each do |event| %>
<div class="tile is-parent ">
<%= render '/partials/_events_tile.*', event: event %>
</div>
<%end%>
</div>
<div class="tile is-vertical">
<% sorted_articles[1..3].each do |post| %>
<div class="tile is-parent ">
<%= render '/partials/_blog_preview.*', post: post %>
</div>
<%end%>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,3 @@
Contact: mailto:admin@zeus.ugent.be
Preferred-Languages: nl,en
Policy: https://git.zeus.gent/bestuur/drive/-/blob/master/varia/responsible_disclosure_policy_nl.md

View file

@ -137,3 +137,211 @@ data:
url: https://github.com/bryanverfaillie
- icon: linkedin
url: https://www.linkedin.com/in/bryan-verfaillie-686b66164/
- name: Jeroen De Clerck
nickname: iepoev
quote: <iepoev> tis nie omdat het maar half werkt dat het niet volledig kan werken
description: Semi-professioneel feestjesbouwer op pensioen. In mijnen tijd was alles beter.
photo: https://zeus.ugent.be/zeuswpi/3T9O1xiO.jpg
links:
- icon: instagram
url: https://instagram.com/iepoev
- icon: facebook
url: https://facebook.com/iepoev
2021:
- name: Titouan Vervack
nickname: FlashYoshi
photo: https://zeus.ugent.be/zeuswpi/0U6neVQP.jpg
quote: Ansible is af!
description: |-
Puns, weeb, Sigasi, klimt, taart.
Houdt écht van Java.
Gebruikt tabs én spaces.
links:
- icon: twitter
url: https://twitter.com/tivervac
- icon: github
url: https://github.com/tivervac
- icon: gitlab
url: https://gitlab.com/FlashYoshi
- name: Felix Van der Jeugt
nickname: noctua
photo: https://zeus.ugent.be/zeuswpi/9_L03Pm8.jpg
quote: |-
<noctua> dwergen
<noctua> dwergen
<noctua> dwergen
<noctua> dwergen
<noctua> Sorry guys
<noctua> dwergen
<noctua> dwergen
description: Ik kom Ice Tea's halen in de kelder.
links:
- icon: github
url: https://www.github.com/ninewise
- url: https://users.ugent.be/~fvdrjeug/
- name: Rien Maertens
nickname: met stokjes
photo: https://zeus.ugent.be/zeuswpi/udVo8mPM.jpg
quote: Fruit op een pizza is als windows op een laptop.
description: Middengewicht typeworstelaar, digitaal ongedierteverdelger,
zedenkundig computerkraker en frequent jakkenscheerder.
links:
- icon: github
url: https://github.com/rien
- icon: twitter
url: https://twitter.com/RienMaertens
- url: https://rien.maertens.io
- name: Francis Begyn
nickname: thecy
photo: https://zeus.ugent.be/zeuswpi/Xl5-9fld.jpg
quote: Ik wil eigenlijk nog gaan feesten, maar flask migrations zijn fucked
description: Ik breek dingen die werken en fix dingen die gebroken zijn.
links:
- icon: facebook
url: https://www.facebook.com/begynfrancis
- icon: twitter
url: https://twitter.com/fbegyn
- icon: linkedin
url: https://www.linkedin.com/in/fbegyn/
- url: https://francis.begyn.be
- name: Tom Naessens
nickname: Silox
photo: https://zeus.ugent.be/zeuswpi/KoAqGb0L.jpg
quote: Raad mij keer een quote aan guys, eentje waarin ik mezelf niet belachelijk maak.
description: To be continued.
links:
- icon: github
url: https://github.com/Silox
- name: David Vandorpe
nickname: Davit
photo: https://zeus.ugent.be/zeuswpi/0xba8AgF.jpg
quote: Teleurstellen is zowat mijn levensdoel, daarom ga ik bij Microsoft werken...
description: |-
Alcoholieker van dienst
Breekt tab enkel als hij zijn tabgeld nog niet gekregen heeft
links:
- icon: github
url: https://github.com/VandorpeDavid
- name: Bart Coppens
nickname: bcoppens
photo: https://zeus.ugent.be/zeuswpi/lmKTWGfn.jpg
quote: |-
<WVDSCHEL> I AM BACK
<WVDSCHEL> ma nie tegen bcoppens zeggen, anders moet ik verderwerken
description: Houdt van security, assembly, en flitsende ASCII spiralen.
links:
- icon: twitter
url: https://twitter.com/bartcopp
- url: https://bartcoppens.be
- name: Jeroen De Clerck
nickname: iepoev
quote: <iepoev> tis nie omdat het maar half werkt dat het niet volledig kan werken
description: Semi-professioneel feestjesbouwer op pensioen. In mijnen tijd was alles beter.
photo: https://zeus.ugent.be/zeuswpi/3T9O1xiO.jpg
links:
- icon: instagram
url: https://instagram.com/iepoev
- icon: facebook
url: https://facebook.com/iepoev
- name: Pieter Vander Vennet
nickname: pietervdvn
photo: https://zeus.ugent.be/zeuswpi/O_nr6ggA.jpg
quote: Is dat al gemapped?
description: Na de master Wiskundige informatica af te werken waarbij hij enkele jaren in het Zeus-bestuur heeft gezeten, komt hij nu nog graag eens langs om te kelderen of om het over open kaarten en routeplanning te hebben. Daarnaast is hij ook fan van een overdosis hackerspace en lichtjes, waarvoor hij ieder jaar naar Leipzig afzakt en Zeus-mensjes meeneemt daarnaartoe.
links:
- icon: map
url: https://osm.org/user/Pieter%20Vander%20Vennet
- icon: github
url: https://github.com/pietervdvn
- icon: twitter
url: https://twitter.com/pietervdvn
- name: Wout Schellaert
nickname: stro
photo: https://zeus.ugent.be/zeuswpi/1gMbZvu6.jpg
quote: \"
description: Blues, Rust, en liefde
links:
- icon: twitter
url: https://twitter.com/WoutSchellaert
- icon: github
url: https://github.com/wschella/
- icon: linkedin
url: https://www.linkedin.com/in/woutschellaert/
- url: http://schellaert.org/
- name: Arne Bertrand
nickname: abeforzeus
photo: https://zeus.ugent.be/zeuswpi/dictkelder.jpg
quote: TODO
description: Komt wel nog
links: []
- name: Michiel Van den Berghe
nickname: michilus
photo: https://zeus.ugent.be/zeuswpi/CznJ6WTT.jpg
quote: Ik zorg voor de camembert
description: Pythonista, space geek, zeppelinbouwer, Albertkanaalfanaat en oude zak met een e-paperfetish. Steekt geregeld elektronica in brand.
links:
- icon: github
url: https://github.com/mivdnber
- name: Feliciaan De Palmenaer
nickname: feliciaan
photo: https://zeus.ugent.be/zeuswpi/MgrXVj97.jpg
quote: <feliciaan> en dat is dan de het
description: Gebruikt computers om economische magie te creëren
links:
- icon: twitter
url: https://twitter.com/feliciaan
- icon: github
url: https://github.com/feliciaan
- icon: linkedin
url: https://linkedin.com/in/feliciaan
- name: Bauke Blomme
nickname: boterham
photo: https://zeus.ugent.be/zeuswpi/tU2GewPN.jpg
quote: ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE ROZE
description: roze.
links:
- icon: facebook
url: https://www.facebook.com/bauke.blomme
- icon: instagram
url: https://www.instagram.com/bokkiebokk
- icon: github
url: https://github.com/booterham
- icon: gitlab
url: https://git.zeus.gent/bokko
- name: Kenneth Van den Driessche
nickname: tleilaxu
photo: https://zeus.ugent.be/zeuswpi/dictkelder.jpg
quote: TODO
description: Komt wel nog
links: []
- name: Nicky Vandeghinste
nickname: nickyname
photo: https://zeus.ugent.be/zeuswpi/OVMcPb3O.jpg
quote: <nickyname> Weet je, als je tetten hebt, is elke talk eigenlijk een TET-talk
description: durft dingen doen, houdt van ice teas en jullie.
links:
- icon: twitter
url: https://twitter.com/NickyVdg
- name: Lorin Werthen
nickname: don
photo: https://zeus.ugent.be/zeuswpi/sJ7VLsol.jpg
quote: <don> TIS WAAR SILOX TIS WAAR <don> IK HAAT ZEUS
description: |
Klimmer, Diepe leerder, Bliep bloeper
Vader van luipaardgekkos
Verdwijnt af en toe naar het Fontainebleau bos
links:
- icon: github
url: https://github.com/werthen
- url: http://werthen.com/
- icon: linkedin
url: https://www.linkedin.com/in/werthen/
- name: Arthur Vercruysse
nickname: silivus
photo: https://zeus.ugent.be/zeuswpi/ZMK-CxTu.jpg
quote: <silvius> Ik ben mijn eigen debugger
description: P̶r̶a̶a̶t̶ Knuffelt met mensen
links:
- icon: github
url: https://github.com/ajuvercr

2
drive

@ -1 +1 @@
Subproject commit c68d3ec27af5953c11bf0e980e44f0799b073c31
Subproject commit e346d083f848488ec334619a5be9ab924123ba1d

View file

@ -14,6 +14,9 @@
<!-- Animate.css -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css">
<!-- KaTeX math css -->
<link rel="stylesheet" type="text/css" href="/assets/stylesheets/katex.css">
<% end %>
<div class="blog-heading">

View file

@ -19,24 +19,35 @@
<% end %>
<% end %>
</ul>
<p class="menu-label">
Tag
</p>
<ul class="menu-list">
<% tag_blog_items.each do |tag, item| %>
<% if @item_rep && @item_rep.path == item.path %>
<li>
<a href="#" class="is-active">
<%= tag %>
</a>
</li>
<% else %>
<li>
<%= link_to tag, item %>
</li>
<% end %>
<% end %>
</ul>
</aside>
</div>
<div class="column">
<div class="columns is-multiline">
<div class="column">
<% 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 do |post| %>
<%= render '/partials/_blog_preview.*', post: post %>
<% end %>
</div>
<div class="column">
<% posts_in_year(item[:academic_year]).each_with_index.reject {|e, i| i.even?}.map(&:first).each do |post| %>
<%= render '/partials/_blog_preview.*', post: post %>
<% end %>
</div>
</div>
<% if posts_in_year(@item[:academic_year]).empty? %>
<% if posts_in_year_or_with_tag(item).empty? %>
<div class="content has-text-centered">
<h1>Sorry.</h1>
<h2>No blog posts yet this year.</h2>

View file

@ -19,15 +19,33 @@
<% end %>
<% end %>
</ul>
<p class="menu-label">
Tag
</p>
<ul class="menu-list">
<% tag_event_items.each do |tag, item| %>
<% if @item_rep && @item_rep.path == item.path %>
<li>
<a href="#" class="is-active">
<%= tag %>
</a>
</li>
<% else %>
<li>
<%= link_to tag, item %>
</li>
<% end %>
<% end %>
</ul>
</aside>
</div>
<div class="column">
<% unless upcoming_events(@item[:academic_year]).empty? %>
<% unless upcoming_events_in_year_or_tag(@item).empty? %>
<div class="content">
<h1>Upcoming events</h1>
</div>
<% upcoming_events(@item[:academic_year]).each_slice(1) do |slice| %>
<% upcoming_events_in_year_or_tag(@item).each_slice(1) do |slice| %>
<div class="columns">
<% slice.each do |event| %>
<div class="tile is-parent ">
@ -38,11 +56,11 @@
<% end %>
<% end %>
<% unless past_events(@item[:academic_year]).empty? %>
<% unless past_events_in_year_or_tag(@item).empty? %>
<div class="content">
<h1>Past events</h1>
</div>
<% past_events(@item[:academic_year]).each_slice(1) do |slice| %>
<% past_events_in_year_or_tag(@item).each_slice(1) do |slice| %>
<div class="columns">
<% slice.each do |event| %>
<div class="tile is-parent ">
@ -53,7 +71,7 @@
<% end %>
<% end %>
<% if past_events(@item[:academic_year]).empty? and upcoming_events(@item[:academic_year]).empty? %>
<% if past_events_in_year_or_tag(@item).empty? and upcoming_events_in_year_or_tag(@item).empty? %>
<div class="content has-text-centered">
<h1>Sorry.</h1>
<h2>No events planned yet this year.</h2>

View file

@ -1,16 +1,21 @@
<a class="box blog-preview" href="<%= relative_path_to(post) %>">
<div class="content">
<h3 class="has-text-centered"><%= post[:title] %></h3>
<p class="has-text-centered">
<%= post[:description] %>
</p>
<h5 class="has-text-centered">
<% if post[:author] %>
door <%= post[:author] %>
<div class="content blog-preview">
<div class="blogpreview-heading">
<a class="title is-3" href="<%= relative_path_to(post) %>">
<%= post[:title] %>
</a>
<div class="blogpreview-tags">
<% post[:tags]&.each do |tag| %>
<!-- The following code is a bit hacky, fix when necessary -->
<a class="tag is-normal is-rounded" href=<%= "/blog/#{tag.gsub(' ', '_')}/index.html" %>>
<%= tag %>
</a>
<% end %>
</h5>
<small><%= post[:created_at] %></small>
<br>
<%= excerptize(post.reps[:text].compiled_content, length: 200).tr("\n", ' ')%>
</div>
</div>
</a>
<small class="blogpreview-extra"><%= post[:created_at] %><% if post[:author] %> • <%= post[:author] %> <% end %> • <%= post[:description] %></small>
<br/>
<p>
<%= excerptize(post.reps[:text].compiled_content, length: 500).tr("\n", ' ')%>
</p>
<hr>
</div>

View file

@ -12,17 +12,17 @@
<img class="event-tile-image" src="<%= @event[:image] %>" alt="">
<% end %>
<div class="event-text">
<h1 class="has-text-centered">
<h2 class="is-size-5-mobile has-text-centered">
<%= @event[:title] %>
</h1>
</h2>
<div class="description has-text-centered">
<div class="is-size-6-mobile description has-text-centered">
<%= @event[:description] %>
</div>
<div class="is-divider"></div>
<div class="event-time-loc">
<div class="is-size-7-mobile event-time-loc">
<%= fa :'clock-o' , fw: true %><%= @event[:time].strftime('%A %d %B, %H:%M') %>
<br>
<%= fa :'map-marker', fw: true %><%= @event[:location] %>

View file

@ -39,7 +39,11 @@
<a href="/about/privacy">
<span class="hidden-xs">Privacy</span>
<%= fa :'user-secret' %>
</a>
</a> |
<a href="/.well-known/security.txt">
<span class="hidden-xs">Responsible Disclosure Policy</span>
<%= fa :'lock' %>
</a>
</p>
</div>
</div>

View file

@ -35,7 +35,7 @@ function performRequest(url, success_callback) {
request.send();
}
performRequest("https://photon.komoot.de/api/?limit=1&q=<%= URI::encode(@location) %>", function(data) {
performRequest("https://photon.komoot.io/api/?limit=1&q=<%= URI::encode_www_form_component(@location) %>", function(data) {
var lat, lon;
if(data.features.length < 1) {
lat = 51.0538286;

17
lib/data_sources/katex.rb Normal file
View file

@ -0,0 +1,17 @@
require 'katex'
class KatexDataSource < ::Nanoc::DataSource
identifier :katex
def items
katex_css_path = File.join(Katex.gem_path, 'vendor', 'katex', 'stylesheets', 'katex.css')
[
new_item(
File.open(katex_css_path).read,
{},
"/katex.css"
)
]
end
end

View file

@ -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,15 @@ module ArchiveHelper
academic_years.reverse.map { |y| [y, items["/blog/#{y}.html"]] }
end
def tag_blog_items
Set.new(items
.find_all('/blog/*/*')
.flat_map { |i| i[:tags] || [] })
.to_a
.sort
.uniq.map { |y| [y, items["/blog/#{y.gsub(' ', '_')}.html"]]}
end
def pretty_year(year)
year = year.scan(/\d\d/)
"'#{year[0]} - '#{year[1]}"
@ -22,4 +31,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

View file

@ -13,6 +13,22 @@ module EventsHelper
items_.select { |x| x[:soon] == soon }.sort_by { |x| x[:time] }
end
def tag_event_items
Set.new(items
.find_all('/events/*/*')
.flat_map { |i| i[:tags] || [] })
.to_a
.sort
.uniq.map { |y| [y, items["/events/#{y.gsub(' ', '_')}.html"]]}
end
def all_events_by_tag(tag = nil, soon = nil)
@items.find_all('/events/*/*.md')
.filter{|i| (i[:tags] || []).include? tag }
.select { |x| x[:soon] == soon }
.sort_by { |x| x[:time] }
end
def soon_events
all_events(nil, true)
end
@ -21,20 +37,36 @@ module EventsHelper
all_events(year).reject { |x| x[:time] <= Date.today }
end
def upcoming_events_in_year_or_tag(item)
if item[:is_yearly]
upcoming_events(item[:academic_year])
else
all_events_by_tag(item[:tag]).reject { |x| x[:time] <= Date.today }
end
end
def past_events(year = nil)
all_events(year).reject { |x| x[:time] > Date.today }.reverse
end
def past_events_in_year_or_tag(item)
if item[:is_yearly]
past_events(item[:academic_year])
else
all_events_by_tag(item[:tag]).reject { |x| x[:time] > Date.today }.reverse
end
end
def academic_years_event_items
items.find_all('/events/*').map { |e| [e[:academic_year], e] }.sort_by(&:first).reverse
items.find_all('/events/*').reject { |e| e[:academic_year].nil? }.map { |e| [e[:academic_year], e] }.sort_by(&:first).reverse
end
def grouped_events
@items.find_all('/events/*/*/main.md')
end
def front_page_events
upcoming_events + all_events.reverse[(upcoming_events.length)..]
def previous_events
all_events.reverse[(upcoming_events.length)..]
end
def sub_events(grouped_event)

View file

@ -56,6 +56,7 @@ module PreprocessHelper
# Tag all posts with article (for Blogging helper)
kind: 'article',
academic_year: i.identifier.to_s[/\d\d-\d\d/],
created_at: Date.parse(i[:created_at])
)
end
end
@ -70,7 +71,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
@ -82,6 +83,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.gsub(' ', '_')}.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

View file

@ -1,6 +1,6 @@
title: Zeus WPI
academic_year: 20-21
sponsoring_members_year: 2020
sponsoring_members_year: 2021
# Needed for atom_feed
author_name: ''
author_uri: ''
@ -90,6 +90,9 @@ data_sources:
items_root: /about/verslagen/
content_dir: drive/verslagen/
layouts_dir: null
-
type: katex
items_root: /assets/stylesheets
# Configuration for the “check” command, which run unit tests on the site.
checks:

View file

@ -7,7 +7,7 @@
"license": "MIT",
"repository": "https://github.com/ZeusWPI/zeus.ugent.be",
"dependencies": {
"bulma": "0.9.0",
"bulma": "0.9.1",
"bulma-divider": "~0.2.0",
"bulma-timeline": "^3.0.4"
}

431
templates/report.tex Normal file
View file

@ -0,0 +1,431 @@
% Adapted from the default template from pandoc
\PassOptionsToPackage{unicode=true}{hyperref} % options for packages loaded elsewhere
\PassOptionsToPackage{hyphens}{url}
$if(colorlinks)$
\PassOptionsToPackage{dvipsnames,svgnames*,x11names*}{xcolor}
$endif$$if(dir)$$if(latex-dir-rtl)$
\PassOptionsToPackage{RTLdocument}{bidi}
$endif$$endif$%
\documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$babel-lang$,$endif$$if(papersize)$$papersize$paper,$endif$$if(beamer)$ignorenonframetext,$if(handout)$handout,$endif$$if(aspectratio)$aspectratio=$aspectratio$,$endif$$endif$
$for(classoption)$$classoption$$sep$,$endfor$]{$documentclass$}
\usepackage{enumitem}
\setlistdepth{20}
\renewlist{itemize}{itemize}{20}
\renewlist{enumerate}{enumerate}{20}
\setlist[itemize]{label=$$\cdot$$}
\setlist[itemize,1]{label=\textbullet}
\setlist[itemize,2]{label=--}
\setlist[itemize,3]{label=*}
$if(beamer)$
$if(background-image)$
\usebackgroundtemplate{%
\includegraphics[width=\paperwidth]{$background-image$}%
}
$endif$
\usepackage{pgfpages}
\setbeamertemplate{caption}[numbered]
\setbeamertemplate{caption label separator}{: }
\setbeamercolor{caption name}{fg=normal text.fg}
\beamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$
$for(beameroption)$
\setbeameroption{$beameroption$}
$endfor$
$endif$
$if(beamerarticle)$
\usepackage{beamerarticle} % needs to be loaded first
$endif$
$if(fontfamily)$
\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
$else$
\usepackage{lmodern}
$endif$
$if(linestretch)$
\usepackage{setspace}
\setstretch{$linestretch$}
$endif$
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\usepackage{fixltx2e} % provides \textsubscript
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp} % provides euro and other symbols
\else % if luatex or xelatex
$if(mathspec)$
\ifxetex
\usepackage{mathspec}
\else
\usepackage{unicode-math}
\fi
$else$
\usepackage{unicode-math}
$endif$
\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
$for(fontfamilies)$
\newfontfamily{$fontfamilies.name$}[$fontfamilies.options$]{$fontfamilies.font$}
$endfor$
$if(mainfont)$
\setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$}
$endif$
$if(sansfont)$
\setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$}
$endif$
$if(monofont)$
\setmonofont[Mapping=tex-ansi$if(monofontoptions)$,$for(monofontoptions)$$monofontoptions$$sep$,$endfor$$endif$]{$monofont$}
$endif$
$if(mathfont)$
$if(mathspec)$
\ifxetex
\setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
\else
\setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
\fi
$else$
\setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
$endif$
$endif$
$if(CJKmainfont)$
\ifxetex
\usepackage{xeCJK}
\setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
\fi
$endif$
$if(luatexjapresetoptions)$
\ifluatex
\usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset}
\fi
$endif$
$if(CJKmainfont)$
\ifluatex
\usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec}
\setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
\fi
$endif$
\fi
$if(beamer)$
$if(theme)$
\usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{$theme$}
$endif$
$if(colortheme)$
\usecolortheme{$colortheme$}
$endif$
$if(fonttheme)$
\usefonttheme{$fonttheme$}
$endif$
$if(mainfont)$
\usefonttheme{serif} % use mainfont rather than sansfont for slide text
$endif$
$if(innertheme)$
\useinnertheme{$innertheme$}
$endif$
$if(outertheme)$
\useoutertheme{$outertheme$}
$endif$
$endif$
% use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
% use microtype if available
\IfFileExists{microtype.sty}{%
\usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
$if(indent)$
$else$
\IfFileExists{parskip.sty}{%
\usepackage{parskip}
}{% else
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
}
$endif$
$if(verbatim-in-note)$
\usepackage{fancyvrb}
$endif$
$if(colorlinks)$
\usepackage{xcolor}
$endif$
\usepackage{hyperref}
\hypersetup{
$if(title-meta)$
pdftitle={$title-meta$},
$endif$
$if(author-meta)$
pdfauthor={$author-meta$},
$endif$
$if(keywords)$
pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$},
$endif$
$if(colorlinks)$
colorlinks=true,
linkcolor=$if(linkcolor)$$linkcolor$$else$Maroon$endif$,
citecolor=$if(citecolor)$$citecolor$$else$Blue$endif$,
urlcolor=$if(urlcolor)$$urlcolor$$else$Blue$endif$,
$else$
pdfborder={0 0 0},
$endif$
breaklinks=true}
\urlstyle{same} % don't use monospace font for urls
$if(verbatim-in-note)$
\VerbatimFootnotes % allows verbatim text in footnotes
$endif$
$if(geometry)$
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
$endif$
$if(beamer)$
\newif\ifbibliography
$endif$
$if(listings)$
\usepackage{listings}
\newcommand{\passthrough}[1]{#1}
$endif$
$if(lhs)$
\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
$endif$
$if(highlighting-macros)$
$highlighting-macros$
$endif$
$if(tables)$
\usepackage{longtable,booktabs}
$if(beamer)$
\usepackage{caption}
% These lines are needed to make table captions work with longtable:
\makeatletter
\def\fnum@table{\tablename~\thetable}
\makeatother
$else$
% Fix footnotes in tables (requires footnote package)
\IfFileExists{footnote.sty}{\usepackage{footnote}\makesavenoteenv{longtable}}{}
$endif$
$endif$
$if(graphics)$
\usepackage{graphicx,grffile}
\makeatletter
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
\makeatother
% Scale images if necessary, so that they will not overflow the page
% margins by default, and it is still possible to overwrite the defaults
% using explicit options in \includegraphics[width, height, ...]{}
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
$endif$
$if(beamer)$
% Prevent slide breaks in the middle of a paragraph:
\widowpenalties 1 10000
\raggedbottom
$if(section-titles)$
\setbeamertemplate{part page}{
\centering
\begin{beamercolorbox}[sep=16pt,center]{part title}
\usebeamerfont{part title}\insertpart\par
\end{beamercolorbox}
}
\setbeamertemplate{section page}{
\centering
\begin{beamercolorbox}[sep=12pt,center]{part title}
\usebeamerfont{section title}\insertsection\par
\end{beamercolorbox}
}
\setbeamertemplate{subsection page}{
\centering
\begin{beamercolorbox}[sep=8pt,center]{part title}
\usebeamerfont{subsection title}\insertsubsection\par
\end{beamercolorbox}
}
\AtBeginPart{
\frame{\partpage}
}
\AtBeginSection{
\ifbibliography
\else
\frame{\sectionpage}
\fi
}
\AtBeginSubsection{
\frame{\subsectionpage}
}
$endif$
$endif$
$if(links-as-notes)$
% Make links footnotes instead of hotlinks:
\DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}}
$endif$
$if(strikeout)$
\usepackage[normalem]{ulem}
% avoid problems with \sout in headers with hyperref:
\pdfstringdefDisableCommands{\renewcommand{\sout}{}}
$endif$
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
$if(numbersections)$
\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
$else$
\setcounter{secnumdepth}{0}
$endif$
$if(beamer)$
$else$
$if(subparagraph)$
$else$
% Redefines (sub)paragraphs to behave more like sections
\ifx\paragraph\undefined\else
\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
\fi
\ifx\subparagraph\undefined\else
\let\oldsubparagraph\subparagraph
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
\fi
$endif$
$endif$
$if(pagestyle)$
\pagestyle{$pagestyle$}
$endif$
% set default figure placement to htbp
\makeatletter
\def\fps@figure{htbp}
\makeatother
$for(header-includes)$
$header-includes$
$endfor$
$if(lang)$
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
$if(babel-newcommands)$
$babel-newcommands$
$endif$
\else
% load polyglossia as late as possible as it *could* call bidi if RTL lang (e.g. Hebrew or Arabic)
\usepackage{polyglossia}
\setmainlanguage[$polyglossia-lang.options$]{$polyglossia-lang.name$}
$for(polyglossia-otherlangs)$
\setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
$endfor$
\fi
$endif$
$if(dir)$
\ifxetex
% load bidi as late as possible as it modifies e.g. graphicx
\usepackage{bidi}
\fi
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
\TeXXeTstate=1
\newcommand{\RL}[1]{\beginR #1\endR}
\newcommand{\LR}[1]{\beginL #1\endL}
\newenvironment{RTL}{\beginR}{\endR}
\newenvironment{LTR}{\beginL}{\endL}
\fi
$endif$
$if(natbib)$
\usepackage[$natbiboptions$]{natbib}
\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
$endif$
$if(biblatex)$
\usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
$for(bibliography)$
\addbibresource{$bibliography$}
$endfor$
$endif$
$if(title)$
\title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
$endif$
$if(subtitle)$
\providecommand{\subtitle}[1]{}
\subtitle{$subtitle$}
$endif$
$if(author)$
\author{$for(author)$$author$$sep$ \and $endfor$}
$endif$
$if(institute)$
\providecommand{\institute}[1]{}
\institute{$for(institute)$$institute$$sep$ \and $endfor$}
$endif$
\date{$date$}
$if(beamer)$
$if(titlegraphic)$
\titlegraphic{\includegraphics{$titlegraphic$}}
$endif$
$if(logo)$
\logo{\includegraphics{$logo$}}
$endif$
$endif$
\begin{document}
$if(title)$
$if(beamer)$
\frame{\titlepage}
$else$
\maketitle
$endif$
$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$
$endif$
$for(include-before)$
$include-before$
$endfor$
$if(toc)$
$if(beamer)$
\begin{frame}
\tableofcontents[hideallsubsections]
\end{frame}
$else$
{
$if(colorlinks)$
\hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$}
$endif$
\setcounter{tocdepth}{$toc-depth$}
\tableofcontents
}
$endif$
$endif$
$if(lot)$
\listoftables
$endif$
$if(lof)$
\listoffigures
$endif$
$body$
$if(natbib)$
$if(bibliography)$
$if(biblio-title)$
$if(book-class)$
\renewcommand\bibname{$biblio-title$}
$else$
\renewcommand\refname{$biblio-title$}
$endif$
$endif$
$if(beamer)$
\begin{frame}[allowframebreaks]{$biblio-title$}
\bibliographytrue
$endif$
\bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}
$if(beamer)$
\end{frame}
$endif$
$endif$
$endif$
$if(biblatex)$
$if(beamer)$
\begin{frame}[allowframebreaks]{$biblio-title$}
\bibliographytrue
\printbibliography[heading=none]
\end{frame}
$else$
\printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$
$endif$
$endif$
$for(include-after)$
$include-after$
$endfor$
\end{document}

View file

@ -12,7 +12,7 @@ bulma-timeline@^3.0.4:
resolved "https://registry.yarnpkg.com/bulma-timeline/-/bulma-timeline-3.0.4.tgz#494f458098a06dcf8dcc7fe8f2f158b63d1d1ef2"
integrity sha512-gCUOcSUuzHoeVMkCpLF49j5Z5yl78XQ+KgJcT+1ju5WIGgBgVytRUob/dw5NHAxPLO2rmcvwYNbCJFp7w4WT4Q==
bulma@0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/bulma/-/bulma-0.9.0.tgz#948c5445a49e9d7546f0826cb3820d17178a814f"
integrity sha512-rV75CJkubNUroAt0qCRkjznZLoaXq/ctfMXsMvKSL84UetbSyx5REl96e8GoQ04G4Tkw0XF3STECffTOQrbzOQ==
bulma@0.9.1:
version "0.9.1"
resolved "https://registry.yarnpkg.com/bulma/-/bulma-0.9.1.tgz#2bf0e25062a22166db5c92e8c3dcb4605ab040d8"
integrity sha512-LSF69OumXg2HSKl2+rN0/OEXJy7WFEb681wtBlNS/ulJYR27J3rORHibdXZ6GVb/vyUzzYK/Arjyh56wjbFedA==