diff --git a/.bundle/config b/.bundle/config index f824911..9746bd1 100644 --- a/.bundle/config +++ b/.bundle/config @@ -1,2 +1,3 @@ --- +BUNDLE_PATH: "vendor/bundle" BUNDLE_WITH: "production" diff --git a/.gitignore b/.gitignore index c637819..3a329a3 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,5 @@ crash.log* .author-information .fb_token + +/vendor/ diff --git a/.ruby-version b/.ruby-version index 57cf282..4a36342 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.6.5 +3.0.0 diff --git a/.travis.yml b/.travis.yml index 994079d..663fbe4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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= diff --git a/Gemfile b/Gemfile index 2411113..58002d8 100644 --- a/Gemfile +++ b/Gemfile @@ -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' diff --git a/Gemfile.lock b/Gemfile.lock index 67a799c..483edce 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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 diff --git a/README.md b/README.md index e2b655d..d0aae2c 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/Rules b/Rules index e6fb788..17b3ea4 100644 --- a/Rules +++ b/Rules @@ -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 '/**/*' diff --git a/content/about/privacy.erb b/content/about/privacy.erb index a245ab3..b4d4b42 100644 --- a/content/about/privacy.erb +++ b/content/about/privacy.erb @@ -28,7 +28,7 @@ subnavigation:
-

Laatst bijgewerkt op . +

Laatst bijgewerkt op .

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.

diff --git a/content/about/privacy/hydra.md b/content/about/privacy/hydra.md index 0dffc42..ef69be4 100644 --- a/content/about/privacy/hydra.md +++ b/content/about/privacy/hydra.md @@ -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. diff --git a/content/about/sponsorende-leden.erb b/content/about/sponsorende-leden.erb index 44c6a54..cee3efb 100644 --- a/content/about/sponsorende-leden.erb +++ b/content/about/sponsorende-leden.erb @@ -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| %>
diff --git a/content/assets/stylesheets/includes/blogpost.scss b/content/assets/stylesheets/includes/blogpost.scss index 9b06104..b361171 100644 --- a/content/assets/stylesheets/includes/blogpost.scss +++ b/content/assets/stylesheets/includes/blogpost.scss @@ -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; } } diff --git a/content/assets/stylesheets/includes/general.scss b/content/assets/stylesheets/includes/general.scss index e75af98..58cfdd6 100644 --- a/content/assets/stylesheets/includes/general.scss +++ b/content/assets/stylesheets/includes/general.scss @@ -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%; +} diff --git a/content/assets/stylesheets/main.scss b/content/assets/stylesheets/main.scss index 9783375..0b0f420 100644 --- a/content/assets/stylesheets/main.scss +++ b/content/assets/stylesheets/main.scss @@ -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"; \ No newline at end of file +@import "includes/toc"; 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/wensen2020.md b/content/blog/20-21/wensen2020.md new file mode 100644 index 0000000..8f44db9 --- /dev/null +++ b/content/blog/20-21/wensen2020.md @@ -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 Mattermost 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. + + + +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 +Mattermost 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 🎄 diff --git a/content/blog/20-21/wij-coden-voort.md b/content/blog/20-21/wij-coden-voort.md index 645c0bc..634eb4f 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 --- We hebben via het WVK[^wvk] doorgekregen dat we onze geliefde kelder terug mogen openen. diff --git a/content/events/20-21/03_plaintextaccounting.md b/content/events/20-21/03_plaintextaccounting.md index d43ad89..7a931f4 100644 --- a/content/events/20-21/03_plaintextaccounting.md +++ b/content/events/20-21/03_plaintextaccounting.md @@ -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. diff --git a/content/events/20-21/04_hacktoberfest.md b/content/events/20-21/04_hacktoberfest.md index 82a6f27..69ae9e9 100644 --- a/content/events/20-21/04_hacktoberfest.md +++ b/content/events/20-21/04_hacktoberfest.md @@ -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 - diff --git a/content/events/20-21/05_exofru.md b/content/events/20-21/05_exofru.md index 02aae92..603df36 100644 --- a/content/events/20-21/05_exofru.md +++ b/content/events/20-21/05_exofru.md @@ -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) diff --git a/content/events/20-21/061_dnd.md b/content/events/20-21/061_dnd.md new file mode 100644 index 0000000..59fc32e --- /dev/null +++ b/content/events/20-21/061_dnd.md @@ -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. diff --git a/content/events/20-21/06_lan.md b/content/events/20-21/06_lan.md index 9ea769a..e4d394b 100644 --- a/content/events/20-21/06_lan.md +++ b/content/events/20-21/06_lan.md @@ -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 diff --git a/content/events/20-21/07_codeweek.md b/content/events/20-21/07_codeweek.md deleted file mode 100644 index f96885f..0000000 --- a/content/events/20-21/07_codeweek.md +++ /dev/null @@ -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! diff --git a/content/events/20-21/08_talk.md b/content/events/20-21/08_talk.md deleted file mode 100644 index e879f0c..0000000 --- a/content/events/20-21/08_talk.md +++ /dev/null @@ -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! diff --git a/content/events/20-21/120_pannenkoeken_en_jenever_codenight.md b/content/events/20-21/120_pannenkoeken_en_jenever_codenight.md new file mode 100644 index 0000000..51bdd11 --- /dev/null +++ b/content/events/20-21/120_pannenkoeken_en_jenever_codenight.md @@ -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 diff --git a/content/events/20-21/12_c_and_d_codenight.md b/content/events/20-21/12_c_and_d_codenight.md deleted file mode 100644 index ee553f3..0000000 --- a/content/events/20-21/12_c_and_d_codenight.md +++ /dev/null @@ -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! diff --git a/content/events/20-21/130_movienight.md b/content/events/20-21/130_movienight.md new file mode 100644 index 0000000..cb74d06 --- /dev/null +++ b/content/events/20-21/130_movienight.md @@ -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!) diff --git a/content/events/20-21/140_hashcode.md b/content/events/20-21/140_hashcode.md new file mode 100644 index 0000000..ebcf872 --- /dev/null +++ b/content/events/20-21/140_hashcode.md @@ -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! diff --git a/content/events/20-21/150_planetwars_hackathon.md b/content/events/20-21/150_planetwars_hackathon.md new file mode 100644 index 0000000..35eb0f0 --- /dev/null +++ b/content/events/20-21/150_planetwars_hackathon.md @@ -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)! diff --git a/content/events/20-21/160_dnd2.md b/content/events/20-21/160_dnd2.md new file mode 100644 index 0000000..c6b9572 --- /dev/null +++ b/content/events/20-21/160_dnd2.md @@ -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 slachtoffers deelnemers te vinden. diff --git a/content/events/20-21/170_game_night.md b/content/events/20-21/170_game_night.md new file mode 100644 index 0000000..bdf47bf --- /dev/null +++ b/content/events/20-21/170_game_night.md @@ -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! diff --git a/content/events/20-21/170_planetwars_hackathon.md b/content/events/20-21/170_planetwars_hackathon.md new file mode 100644 index 0000000..56cfec5 --- /dev/null +++ b/content/events/20-21/170_planetwars_hackathon.md @@ -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)! diff --git a/content/events/20-21/180_movienight.md b/content/events/20-21/180_movienight.md new file mode 100644 index 0000000..1caf373 --- /dev/null +++ b/content/events/20-21/180_movienight.md @@ -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!) diff --git a/content/events/20-21/203_hotosm.md b/content/events/20-21/203_hotosm.md new file mode 100644 index 0000000..8fce7aa --- /dev/null +++ b/content/events/20-21/203_hotosm.md @@ -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 diff --git a/content/events/20-21/204_game_jam.md b/content/events/20-21/204_game_jam.md new file mode 100644 index 0000000..c64ce46 --- /dev/null +++ b/content/events/20-21/204_game_jam.md @@ -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 diff --git a/content/events/20-21/205_lightning_talks.md b/content/events/20-21/205_lightning_talks.md new file mode 100644 index 0000000..067b763 --- /dev/null +++ b/content/events/20-21/205_lightning_talks.md @@ -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 diff --git a/content/events/20-21/300_codepacketjes.md b/content/events/20-21/300_codepacketjes.md new file mode 100644 index 0000000..3d80e64 --- /dev/null +++ b/content/events/20-21/300_codepacketjes.md @@ -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 diff --git a/content/events/20-21/300_obus.md b/content/events/20-21/300_obus.md new file mode 100644 index 0000000..25a2743 --- /dev/null +++ b/content/events/20-21/300_obus.md @@ -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 diff --git a/content/events/20-21/300_verkiezingen.md b/content/events/20-21/300_verkiezingen.md new file mode 100644 index 0000000..f0d9fd5 --- /dev/null +++ b/content/events/20-21/300_verkiezingen.md @@ -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 diff --git a/content/events/20-21/10_workshop_electronics.md b/content/events/20-21/300_workshop_electronics.md similarity index 87% rename from content/events/20-21/10_workshop_electronics.md rename to content/events/20-21/300_workshop_electronics.md index 2165d5e..28da78f 100644 --- a/content/events/20-21/10_workshop_electronics.md +++ b/content/events/20-21/300_workshop_electronics.md @@ -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! diff --git a/content/events/20-21/09_zeustp.md b/content/events/20-21/300_zeustp.md similarity index 88% rename from content/events/20-21/09_zeustp.md rename to content/events/20-21/300_zeustp.md index e9f2c83..da5120d 100644 --- a/content/events/20-21/09_zeustp.md +++ b/content/events/20-21/300_zeustp.md @@ -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! diff --git a/content/index.erb b/content/index.erb index 7cd0566..7cafecb 100644 --- a/content/index.erb +++ b/content/index.erb @@ -1,63 +1,101 @@ <% content_for :head do %> - - - - - - - + + + + + + + <% end %> <% content_for :scripts do %> -<%= asset :js, :gamification %> + <%= asset :js, :gamification %> <% end %>
- <%= if studytime? then render '/tiles/blokmap.*'end %> + <% if studytime? %> + <%= render '/tiles/blokmap.*' %> + <% end %>
- <%= render '/partials/_events_tile.*', event: front_page_events[0] %> +
+
+ Upcoming Events +
+ <% unless upcoming_events.empty? %> + <% upcoming_events.each do |event| %> +
+ <%= render '/partials/_events_tile.*', event: event %> +
+ <% end %> + <% else %> +
+ There are currently no upcoming events. If you have a suggestion, let us know on mattermost in ~events! +
+
+ <% end %> +
+
+
+
+
+
+ Top Coders +
+
+
+
+

+ + + +

+
+
+ +
+
+
+ + +
+ Previous Events +
+ <% previous_events[0..3].each do |event| %> +
+ <%= render '/partials/_events_tile.*', event: event %> +
+ <%end%> +
+
+
+
+
+

About Zeus WPI

+

+ 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. +

+ +

+ 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. +

+
+
+ Blogposts +
+ <% sorted_articles[0..3].each do |post| %> + <%= render '/partials/_blog_preview.*', post: post %> + <%end%> +
+
-
-
-
-
-

- - - -

-
-
- -
-
+
+
- -
- <%= render '/partials/_blog_preview.*', post: sorted_articles.first %> -
-
-
-
- <% front_page_events[1..3].each do |event| %> -
- <%= render '/partials/_events_tile.*', event: event %> -
- <%end%> -
-
- <% sorted_articles[1..3].each do |post| %> -
- <%= render '/partials/_blog_preview.*', post: post %> -
- <%end%> - -
diff --git a/content/well-known/security.txt b/content/well-known/security.txt new file mode 100644 index 0000000..f142768 --- /dev/null +++ b/content/well-known/security.txt @@ -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 \ No newline at end of file diff --git a/data/supporting_members.yaml b/data/supporting_members.yaml index 4011346..0ef7fd8 100644 --- a/data/supporting_members.yaml +++ b/data/supporting_members.yaml @@ -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: 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: |- + dwergen + dwergen + dwergen + dwergen + Sorry guys + dwergen + 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: |- + I AM BACK + 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: 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: 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: 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: TIS WAAR SILOX TIS WAAR 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: Ik ben mijn eigen debugger + description: P̶r̶a̶a̶t̶​ Knuffelt met mensen + links: + - icon: github + url: https://github.com/ajuvercr diff --git a/drive b/drive index c68d3ec..e346d08 160000 --- a/drive +++ b/drive @@ -1 +1 @@ -Subproject commit c68d3ec27af5953c11bf0e980e44f0799b073c31 +Subproject commit e346d083f848488ec334619a5be9ab924123ba1d diff --git a/layouts/blogpost.erb b/layouts/blogpost.erb index b4d775a..fedb926 100644 --- a/layouts/blogpost.erb +++ b/layouts/blogpost.erb @@ -14,6 +14,9 @@ + + + <% end %>
diff --git a/layouts/blogs.erb b/layouts/blogs.erb index 41f6de0..981c222 100644 --- a/layouts/blogs.erb +++ b/layouts/blogs.erb @@ -19,24 +19,35 @@ <% 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 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| %> - <%= 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/layouts/events.erb b/layouts/events.erb index c967bf7..fe6914f 100644 --- a/layouts/events.erb +++ b/layouts/events.erb @@ -19,15 +19,33 @@ <% end %> <% end %> + +
- <% unless upcoming_events(@item[:academic_year]).empty? %> + <% unless upcoming_events_in_year_or_tag(@item).empty? %>

Upcoming events

- <% upcoming_events(@item[:academic_year]).each_slice(1) do |slice| %> + <% upcoming_events_in_year_or_tag(@item).each_slice(1) do |slice| %>
<% slice.each do |event| %>
@@ -38,11 +56,11 @@ <% end %> <% end %> - <% unless past_events(@item[:academic_year]).empty? %> + <% unless past_events_in_year_or_tag(@item).empty? %>

Past events

- <% past_events(@item[:academic_year]).each_slice(1) do |slice| %> + <% past_events_in_year_or_tag(@item).each_slice(1) do |slice| %>
<% slice.each do |event| %>
@@ -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? %>

Sorry.

No events planned yet this year.

diff --git a/layouts/partials/_blog_preview.erb b/layouts/partials/_blog_preview.erb index 47d9c6f..031dcc6 100644 --- a/layouts/partials/_blog_preview.erb +++ b/layouts/partials/_blog_preview.erb @@ -1,16 +1,21 @@ - -
-

<%= post[:title] %>

-

- <%= post[:description] %> -

-
- <% if post[:author] %> - door <%= post[:author] %> +
+
+ + <%= post[:title] %> + +
+ <% post[:tags]&.each do |tag| %> + + > + <%= tag %> + <% end %> -
- <%= post[:created_at] %> -
- <%= excerptize(post.reps[:text].compiled_content, length: 200).tr("\n", ' ')%> +
- + <%= post[:created_at] %><% if post[:author] %> • <%= post[:author] %> <% end %> • <%= post[:description] %> +
+

+ <%= excerptize(post.reps[:text].compiled_content, length: 500).tr("\n", ' ')%> +

+
+
diff --git a/layouts/partials/_events_tile.erb b/layouts/partials/_events_tile.erb index c1ca994..f6177c0 100644 --- a/layouts/partials/_events_tile.erb +++ b/layouts/partials/_events_tile.erb @@ -12,17 +12,17 @@ <% end %>
-

+

<%= @event[:title] %> -

+ -
+
<%= @event[:description] %>
-
+
<%= fa :'clock-o' , fw: true %><%= @event[:time].strftime('%A %d %B, %H:%M') %>
<%= fa :'map-marker', fw: true %><%= @event[:location] %> diff --git a/layouts/partials/_footer.erb b/layouts/partials/_footer.erb index a64c627..137288d 100644 --- a/layouts/partials/_footer.erb +++ b/layouts/partials/_footer.erb @@ -39,7 +39,11 @@ <%= fa :'user-secret' %> - + | + + + <%= fa :'lock' %> +

diff --git a/layouts/partials/_map.erb b/layouts/partials/_map.erb index d703c7d..a95eb34 100644 --- a/layouts/partials/_map.erb +++ b/layouts/partials/_map.erb @@ -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; diff --git a/lib/data_sources/katex.rb b/lib/data_sources/katex.rb new file mode 100644 index 0000000..31677b7 --- /dev/null +++ b/lib/data_sources/katex.rb @@ -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 diff --git a/lib/helpers/archives.rb b/lib/helpers/archives.rb index 68ec04f..5fe64ad 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,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 diff --git a/lib/helpers/events.rb b/lib/helpers/events.rb index 0649079..14aadf4 100644 --- a/lib/helpers/events.rb +++ b/lib/helpers/events.rb @@ -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) diff --git a/lib/helpers/preprocess.rb b/lib/helpers/preprocess.rb index 9ecb2bc..9ca6bd7 100644 --- a/lib/helpers/preprocess.rb +++ b/lib/helpers/preprocess.rb @@ -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 diff --git a/nanoc.yaml b/nanoc.yaml index f07fcf5..38fe064 100644 --- a/nanoc.yaml +++ b/nanoc.yaml @@ -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: diff --git a/package.json b/package.json index d83dbfa..8dc4885 100644 --- a/package.json +++ b/package.json @@ -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" } diff --git a/templates/report.tex b/templates/report.tex new file mode 100644 index 0000000..4c3bddd --- /dev/null +++ b/templates/report.tex @@ -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} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index fd7755b..e0ecb9d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -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==