Merge branch 'master' into linux-post

This commit is contained in:
Rien Maertens 2017-02-02 12:19:52 +01:00
commit d47488a4a4
No known key found for this signature in database
GPG key ID: 943CAB70C511D23C
64 changed files with 854 additions and 363 deletions

View file

@ -1,2 +0,0 @@
---
BUNDLE_WITHOUT: "production"

View file

@ -14,9 +14,9 @@ before_install:
- echo -e "Host zeus.ugent.be\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
- npm install
script:
- ZEUS_PRODUCTION=1 bundle exec nanoc
- ZEUS_PRODUCTION=1 bundle exec nanoc check --deploy
- bundle exec nanoc --env=prod
- bundle exec nanoc --env=prod check --deploy
after_success:
- mv deploy_key ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- '[[ $TRAVIS_PULL_REQUEST == "false" ]] && [[ $TRAVIS_BRANCH == "master" ]] && ZEUS_PRODUCTION=1 bundle exec nanoc deploy public'
- '[[ $TRAVIS_PULL_REQUEST == "false" ]] && [[ $TRAVIS_BRANCH == "master" ]] && bundle exec nanoc --env=prod deploy public'

31
Gemfile
View file

@ -1,23 +1,23 @@
# frozen_string_literal: true
source 'https://rubygems.org'
gem 'nanoc', '4.3.7'
gem 'kramdown'
gem 'nanoc', '4.5.4'
# General filtering
gem 'coffee-script'
gem 'icalendar' # ical files
gem 'kramdown'
gem 'sass'
# Needed for atom_feed in blogging helper
gem 'builder'
# Checks
gem 'w3c_validators'
# ical files
gem 'icalendar'
# Faster css autoprefixing
gem 'therubyracer'
# Autoprefixing for class
gem 'autoprefixer-rails'
# Word counting gem (which takes special characters into account)
# for reading time
gem 'words_counted'
group :development do
gem 'adsf'
@ -25,6 +25,17 @@ group :development do
gem 'terminal-notifier-guard'
end
group :production do
# Autoprefixing for class
gem 'autoprefixer-rails'
gem 'html_press'
end
group :nanoc do
gem 'guard-nanoc'
end
group :test do
# Checks
gem 'w3c_validators'
end

View file

@ -3,7 +3,7 @@ GEM
specs:
adsf (1.2.1)
rack (>= 1.0.0)
autoprefixer-rails (6.5.1.1)
autoprefixer-rails (6.5.3)
execjs
builder (3.2.2)
coderay (1.1.1)
@ -12,9 +12,14 @@ GEM
execjs
coffee-script-source (1.10.0)
colored (1.2)
concurrent-ruby (1.0.2)
cri (2.7.0)
concurrent-ruby (1.0.4)
cri (2.7.1)
colored (~> 1.2)
css_press (0.3.2)
csspool-st (= 3.1.2)
json
csspool-st (3.1.2)
ddplugin (1.0.0)
execjs (2.7.0)
ffi (1.9.14)
formatador (0.2.5)
@ -28,17 +33,22 @@ GEM
shellany (~> 0.0)
thor (>= 0.18.1)
guard-compat (1.2.1)
guard-nanoc (2.1.0)
guard-nanoc (2.1.1)
guard (~> 2.8)
guard-compat (~> 1.0)
nanoc (~> 4.0)
nanoc (>= 4.3.8, < 5.0)
hamster (3.0.0)
concurrent-ruby (~> 1.0)
highline (1.7.8)
html_press (0.8.2)
htmlentities
multi_css (>= 0.1.0)
multi_js (>= 0.1.0)
htmlentities (4.3.4)
icalendar (2.4.1)
json (2.0.2)
kramdown (1.12.0)
libv8 (3.16.14.15)
kramdown (1.13.0)
libv8 (3.16.14.17)
listen (3.1.5)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
@ -46,10 +56,14 @@ GEM
lumberjack (1.0.10)
method_source (0.8.2)
mini_portile2 (2.1.0)
nanoc (4.3.7)
multi_css (0.1.0)
css_press
multi_js (0.1.0)
uglifier (~> 2)
nanoc (4.5.4)
cri (~> 2.3)
ddplugin (~> 1.0)
hamster (~> 3.0)
parallel (~> 1.9)
ref (~> 2.0)
nenv (0.3.0)
nokogiri (1.6.8.1)
@ -57,7 +71,6 @@ GEM
notiffany (0.1.1)
nenv (~> 0.1)
shellany (~> 0.0)
parallel (1.9.0)
pry (0.10.4)
coderay (~> 1.1.0)
method_source (~> 0.8.1)
@ -76,9 +89,13 @@ GEM
libv8 (~> 3.16.14.0)
ref
thor (0.19.1)
uglifier (2.7.2)
execjs (>= 0.3.0)
json (>= 1.8.0)
w3c_validators (1.2)
json
nokogiri
words_counted (1.0.2)
PLATFORMS
ruby
@ -90,13 +107,15 @@ DEPENDENCIES
coffee-script
guard-nanoc
highline
html_press
icalendar
kramdown
nanoc (= 4.3.7)
nanoc (= 4.5.4)
sass
terminal-notifier-guard
therubyracer
w3c_validators
words_counted
BUNDLED WITH
1.13.3
1.13.6

View file

@ -32,6 +32,16 @@ bundle exec nanoc deploy --target public
Posts should be written in [kramdown](http://kramdown.gettalong.org/index.html), a markdown superset which has a very complete [syntax guide](http://kramdown.gettalong.org/syntax.html).
Meta-tags:
| Name | Type | Required |
|-------------|--------|----------|
| :title | String | yes |
| :created_at | Date | yes |
| :description| String | no |
| :author | String | no |
| :lang | String | no |
## Events
Example structure:
@ -57,27 +67,27 @@ content/
Every event is a `.md` file with the following metadata tags:
#### Required
| Name | Type | Required |
|--------------|--------|----------|
| :title | String | yes |
| :time | Date | yes |
| :location | String | yes |
| :description | String | no |
| :created_at | Date | no |
| :locationlink| String | no |
| :facebook | URL | no |
| :banner | URL | no |
| :image | URL | no |
* title: String
* time: Date
* location: String
#### Optional
* banner: URL
### Grouped events
If there's a series of events (for example summer code nights) these can be grouped by creating a folder containing a `main.md`, which will need the following metadata:
#### Required
* title: String
#### Optional
* location: String
* banner: URL
| Name | Type | Required |
|--------------|--------|----------|
| :title | String | yes |
| :location | String | no |
| :banner | URL | no |
Other `.md` files made in that folder are sub-events which need to fit the [metadata description listed earlier](#metadata)

62
Rules
View file

@ -14,47 +14,10 @@ preprocess do
`npm install`
# We don't want to compile old blogposts in development
if development?
@items.delete_if do |item|
ident = item.identifier.to_s
next unless ident.to_s.start_with?('/blog/')
!ident.start_with?('/blog/16-17/')
end
end
@items.find_all('/blog/**/*').each do |i|
year_str = %r{/(\d\d)-\d\d/}.match(i.identifier).captures[0]
academic_year = year_str.to_i
attr_hash = {
# Tag all posts with article (for Blogging helper)
kind: 'article',
academic_year: academic_year
}
i.update_attributes(attr_hash)
end
# academic_years is defined in archives.rb
academic_years.each do |year|
@items.create(
'',
{ academic_year: year, title: 'Blog' },
"/blog/#{year}-#{year + 1}.html",
binary: false
)
end
academic_years_items[academic_years.max].update_attributes(
navigable: true,
order: 10
)
all_events.each do |event|
event[:time] = DateTime.parse(event[:time])
end
ignore_old_blogposts if development?
update_blog_attributes
create_blog_items
convert_event_time_to_timestamps
end
#
@ -67,8 +30,6 @@ compile '/feed.xml' do
write '/feed.xml'
end
passthrough '/quotes.json'
#
# ARCHIVES
#
@ -95,9 +56,6 @@ compile '/events/**/*', rep: :text do
filter :strip_html
end
compile '/events/**/main.md', rep: :ical do
end
compile '/events/**/*', rep: :ical do
filter :ical
end
@ -112,6 +70,7 @@ compile '/blog/*/*' do
layout '/blogpost.erb'
layout '/generic.*'
layout '/default.*'
filter :erb
end
compile '/blog/*/*', rep: :text do
@ -119,7 +78,6 @@ compile '/blog/*/*', rep: :text do
filter :strip_html
end
#
# PROJECTS
#
@ -135,15 +93,13 @@ route '/projects/*' do; end
#
compile '/*_search.json' do
filter :erb
write @item.identifier.to_s
end
compile '/**/*.ics' do
filter :erb
write @item.identifier.to_s
end
compile '/*.erb' do
compile '/**/*.erb' do
layout '/generic.*'
layout '/default.*'
filter :erb
@ -163,9 +119,6 @@ compile '/assets/stylesheets/**/*.scss' do
filter :autoprefixer if production?
end
passthrough '/assets/images/*.{png,svg}'
passthrough '/assets/**/*.js'
#
#
# ROUTES
@ -196,6 +149,9 @@ route '/**/*.{erb,html,md}' do
end
end
# Let anything else simply pass through
passthrough '/**/*'
#
#
# LAYOUTS

View file

@ -2,7 +2,9 @@
navigable: true
title: About
order: 0
narrow_page: true
---
<%= render '/partials/_about_sub_navbar.*', selected: 'about' %>
<div class="content">
<h1>Over Zeus WPI</h1>
@ -20,8 +22,10 @@ order: 0
<h2>Het bestuur</h2>
Het bestuur zorgt ervoor dat alle wieltjes blijven draaien en organiseert regelmatig activiteiten voor de leden.
Het bestuur voor het academiejaar 2016-2017 van Zeus WPI is:
<p>
Het bestuur zorgt ervoor dat alle wieltjes blijven draaien en organiseert regelmatig activiteiten voor de leden.
Het bestuur voor het academiejaar 2016-2017 van Zeus WPI is:
</p>
<table class="table">
<thead>
@ -61,11 +65,11 @@ order: 0
Zeus WPI heeft een lokaal in de kelder van gebouw S9 op campus de Sterre, die door de leden liefkozend “de kelder” genoemd wordt. Daar staat het volledige computerpark van Zeus WPI.
</p>
Zeus bereik je zo:
<p>Zeus bereik je zo:</p>
<ul>
<li>
kom naar de kelder en spring eens binnen
kom naar de kelder en spring eens binnen (ons vinden doe je <a href="https://soleway.ugent.be/routes/4370"> hier</a>).
</li>
<li>
stuur een mailtje naar <a href="mailto:bestuur@zeus.ugent.be">het bestuur</a>
@ -73,6 +77,9 @@ order: 0
<li>
stuur een gele briefkaart naar “Zeus WPI Krijgslaan 281, S9 9000 Gent”
</li>
<li>
blijf op de hoogte via onze <a href="http://lists.zeus.ugent.be/mailman/listinfo/leden">mailinglist</a>
</li>
<li>
bezoek ons <a href="irc://wina.ugent.be/#zeus">IRC-kanaalserver</a>
</li>
@ -89,4 +96,5 @@ order: 0
word fan op <a href="https://www.facebook.com/zeus.wpi">Facebook</a>
</li>
</ul>
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d1156.8611760710044!2d3.7102397000000003!3d51.023149499999995!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47c373c271502d9b%3A0x49fd54f81cafeb5f!2sZeus+WPI!5e0!3m2!1sen!2sbe!4v1481415854540" width="100%" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
</div>

View file

@ -0,0 +1,46 @@
---
narrow_page: true
---
<%= render '/partials/_about_sub_navbar.*', selected: 'statuten' %>
<h1 class="title is-1 has-text-centered">Statuten</h1>
<h2 class="subtitle is-3 has-text-centered">Revisie academiejaar 2013-2014</h2>
<div class="content">
<h3>Hoofdstuk I - Algemeenheden</h3>
<strong>Art. 1</strong> - De vereniging draagt de naam: "Zeus - Werkgroep Informatica", kortweg "Zeus", of "Zeus WPI".<br />
<strong>Art. 2</strong> - De vereniging heeft haar zetel te Krijgslaan 281, S9 B-9000 GENT. Bij beslissing van het bestuur kan de zetel evenwel verplaatst worden naar een andere plaats.<br />
<strong>Art. 3</strong> - De vereniging heeft als website zeus.ugent.be. Bij beslissing van het bestuur kan dit webadres veranderd worden.<br />
<strong>Art. 4</strong> - De vereniging richt zich tot geïnteresseerden in de informatica en onder hen de studenten van de UGent in het bijzonder. Ze stelt zich tot doel het aanbieden van activiteiten, lessen en faciliteiten in het informatica-vakgebied teneinde studenten kennis te laten maken met andere informatica-domeinen, buiten alle winstbejag om. Bovendien wil de vereniging studenten samenbrengen die werken rond deze activiteiten.<br />
<strong>Art. 5</strong> - De vereniging kan alle handelingen stellen die zowel rechtstreeks als onrechtstreeks de verwezenlijking van haar doelstellingen beoogt.<br />
<h3>Hoofdstuk II - Lidmaatschap</h3>
<strong>Art. 6</strong> - Het aantal leden van de vereniging is onbeperkt en het lidmaatschap is voorbehouden voor alle studenten die momenteel toegang hebben tot UGentNet, welke verleend wordt door de Universiteit Gent, of andere personen die daarvoor de goedkeuring krijgen van het bestuur van de vereniging. Personen die hiervoor in aanmerking komen zijn personen die kunnen bijdragen tot de verdere ontplooiing van de vereniging.<br />
<strong>Art. 7</strong> - Het lidmaatschap houdt in dat de gebruiker een account krijgt op de servers van de vereniging en ingeschreven wordt op de mailinglijst van de vereniging. Als men opmerkt dat er misbruik wordt gemaakt van deze account, kan deze -zonder voorafgaande waarschuwing- beëindigd worden. Dit betekent niet dat het lidmaatschap van deze persoon wordt opgezegd.<br />
<strong>Art. 8</strong> - Het erelidmaatschap van de vereniging kan toegekend worden aan personen die zich verdienstelijk gemaakt hebben voor de vereniging. De beslissing wordt genomen door het bestuur en dient unaniem goedgekeurd te worden.<br />
<strong>Art. 9</strong> - Het lidmaatschap is kosteloos, maar vergt activiteit binnen de vereniging. In geval van inactiviteit kan het lidmaatschap en bijbehorende account mits voorafgaande verwittiging door het bestuur opgezegd worden.<br />
<strong>Art. 10</strong> - Leden worden persoonlijk op de hoogte gebracht van alle activiteiten van de vereniging. Publieke activiteiten worden ten minste meegedeeld door affiches, via het platform van de Dienst Studentenactiviteiten,aankondigingen in studententijdschriften, via de mailinglijst en via de website,...<br />
<strong>Art. 11</strong> - Uitsluiten van leden kan nadat er is vastgesteld dat er schade is aangebracht aan de naam of eigendommen van de vereniging, of nadat men niet meer voldoet aan de statuten van de vereniging. De persoon krijgt de kans zich te verantwoorden tegenover het bestuur op de eerstvolgende bestuursvergadering. Hierna wordt beslist of de persoon lid kan blijven, of uit de vereniging wordt gezet. Er is 2/3 meerderheid van het bestuur nodig bij het uitsluiten van leden. Bij uitzonderlijke gevallen kunnen gerechtelijke stappen ondernomen worden.<br />
<h3>Hoofdstuk III - Het bestuur</h3>
<strong>Art. 12</strong> - De vereniging wordt bestuurd door tenminste drie personen (voorzitter, penningmeester en secretaris) verkozen voor de duur van 1 jaar. Zij vormen het bestuur van de vereniging. Voor bestuursfuncties komen slechts studenten aan de Universiteit Gent in aanmerking.<br />
<strong>Art. 13</strong> - Het bestuur van het komende academiejaar wordt op een speciaal daartoe aangekondigde ledenvergadering verkozen op het einde van het academiejaar ervoor. Alle leden hebben stemrecht en worden van deze vergadering persoonlijk op de hoogte gebracht via de mailinglijst.<br />
<strong>Art. 14</strong> - De verantwoordelijkheden en rechten van het bestuur zijn:
<ul>
<li><em>Voorzitter</em>: De voorzitter is verantwoordelijk voor de coördinatie van de vereniging en draagt de eindverantwoordelijkheid. De voorzitter leidt de vergaderingen en beslist wanneer de volgende activiteiten zullen plaatsvinden. De voorzitter heeft een algemeen vetorecht.</li>
<li><em>Penningmeester</em>: De penningmeester is verantwoordelijk voor alle geldzaken van de vereniging. Hij heeft een financieel vetorecht inzake uitgaven die onder verantwoordelijkheid van de vereniging worden gedaan.</li>
<li><em>Secretaris</em>: De secretaris maakt verslagen van elke vergadering, en zorgt voor alle planning van alle activiteiten, om die later door de voorzitter te laten goedkeuren.</li>
</ul>
Wanneer de voorzitter of de penningmeester gebruik maakt van zijn vetorecht, dient hij automatisch het ontslag uit zijn functie in. De beslissing waartegen het veto werd gebruikt kan pas uitgevoerd worden nadat een opvolger verkozen is, en het betreffende punt opnieuw beslist wordt.Optionele bestuursfuncties en hun verantwoordelijkheden zijn:
<ul>
<li><em>Systeemadministrator(s):</em> draagt (dragen) de verantwoordelijkheid voor het onderhoud van de servers en clients.</li>
<li><em>Activiteitenverantwoordelijke:</em> draagt de verantwoordelijkheid bij het organiseren van de activiteiten.</li>
</ul>
Het bestuur kan verder aangevuld worden, al dan niet met officieuze functies.<br />
<strong>Art. 15</strong> - De hierboven vernoemde verantwoordelijkheden van de bestuursleden zijn niet-exhaustief. Ieder bestuurslid draagt o.a. een algemene verwantwoordelijkheid.<br />
<strong>Art. 15</strong> - Het bestuur komt regelmatig samen op een daartoe vastgestelde dag, die door de voorzitter wordt vastgelegd en door de secretaris aan alle leden wordt meegedeeld. De bestuursvergadering is slechts geldig wanneer twee derden aanwezig is. De agendapunten moeten behandeld worden. Bij gelijke stemming heeft de voorzitter het laatste woord.<br />
<strong>Art. 16</strong> - Alle voorstellen die tijdens een bepaalde vergadering werden voorgelegd, worden gebundeld. Een exemplaar hiervan wordt door de secretaris bedeeld aan de bestuursleden. Een exemplaar wordt publiekelijk beschikbaar gesteld via de website van de vereniging.<br />
<h3>Hoofdstuk IV - Eindbepaling</h3>
<strong>Art. 17</strong> - De statuten kunnen slechts gewijzigd worden op een algemene ledenvergadering waar minstens 1/2 van de leden aanwezig is. Hiervoor is bij stemming een 2/3 meerderheid van alle aanwezige leden vereist.<br />
<strong>Art. 18</strong> - In geval van ontbinding zal de vereniging beslissen dat het nettoactief zal gestort worden aan een nader te bepalen goed doel.<br />
</div>
</div>

View file

@ -0,0 +1,64 @@
<div class="content">
<h1>Verslagen</h1>
<ul>
<li>kdjfsql</li>
<li>kdjfsql</li>
<li>kdjfsql</li>
<li>kdjfsql</li>
<li>kdjfsql</li>
</ul>
</div>
<div class="content">
<h3>Academiejaar 2015-2016</h3>
coming soon: statutenwijzigingen + verkiezingsuitslag (Mei 2016)
<a href="http://zeus.ugent.be/over-zeus-wpi/verslagen/vergadering8/"rel="attachment wp-att-2479">Bestuursvergadering 8: April 2016</a><br />
<a href="http://zeus.ugent.be/over-zeus-wpi/verslagen/bestuursvergadering7/"rel="attachment wp-att-2478">Bestuursvergadering 7: Maart 2016</a><br />
<a href="http://zeus.ugent.be/over-zeus-wpi/verslagen/bestuursvergadering6/"rel="attachment wp-att-2477">Bestuursvergadering 6: Februari 2016</a><br />
<a href="https://zeus.ugent.be/wp-content/uploads/2015/03/Bestuursvergadering5.pdf">Bestuursvergadering 5: December 2015</a><br />
<a href="https://zeus.ugent.be/wp-content/uploads/2015/03/Bestuursvergadering4.pdf">Bestuursvergadering 4: November 2015</a><br />
<a href="https://zeus.ugent.be/wp-content/uploads/2015/03/Bestuursvergadering3.pdf">Bestuursvergadering 3: Oktober 2015</a><br />
<a href="https://zeus.ugent.be/wp-content/uploads/2015/10/Vergadering7september.pdf"> Bestuursvergadering 2: September 2015</a><br />
<a href="https://zeus.ugent.be/wp-content/uploads/2015/10/vergadering4augustus.pdf">Bestuursvergadering 1: Augustus 2015</a><br />
<h3>Academiejaar 2014-2015</h3>
<a href="https://zeus.ugent.be/wp-content/uploads/2015/03/Ledenvergaderingmei2015.pdf">Ledenvergadering Mei 5 2015</a><br />
<a href="https://zeus.ugent.be/wp-content/uploads/2015/03/2015-04-23Bestuursvergadering12.pdf">Bestuursvergadering April 23 2015</a><br />
<a href="https://zeus.ugent.be/wp-content/uploads/2015/03/2015-03-18Bestuursvergadering11.pdf">Bestuursvergadering Maart 18 2015</a><br />
<a href="https://zeus.ugent.be/wp-content/uploads/2014/09/2015-03-02Bestuursvergadering10.pdf">Bestuursvergadering Maart 2 2015</a><br />
<a href="https://zeus.ugent.be/wp-content/uploads/2014/09/2015-02-09Bestuursvergadering9.pdf">Bestuursvergadering Februari 8 2015</a><br />
<a href="https://zeus.ugent.be/wp-content/uploads/2014/09/2015-02-02Bestuursvergadering8.pdf">Bestuursvergadering Februari 2 2015</a><br />
<a href="https://zeus.ugent.be/wp-content/uploads/2014/09/2014-12-02Bestuursvergadering7.pdf">Bestuursvergadering December 2014</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/09/Bestuursvergadering65november2014.pdf">Bestuursvergadering November 2014</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/09/Bestuursvergadering57oktober2014.pdf">Bestuursvergadering Oktober 2014</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/09/Bestuursvergadering416september2014.pdf">Bestuursvergadering September 16 2014</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/09/Bestuursvergadering38September2014-2.pdf">Bestuursvergadering September 8 2014</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/Bestuursvergadering25augustus2014.pdf">Bestuursvergadering augustus 2014</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/Bestuursvergadering1juli2014.pdf">Bestuursvergadering juli 2014</a><br />
<h3>Academiejaar 2013-2014</h3>
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/Bestuursvergadering18214.pdf">Bestuursvergadering februari 2014</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/Bestuursvergadering29oktober2013.pdf">Bestuursvergadering oktober 2013</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/Bestuursvergaderingbegin5913.pdf">Bestuursvergadering september 2013</a><br />
<h3>Academiejaar 2012-2013</h3>
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/Ledenvergadering14mei2013.pdf">Ledenvergadering mei 2013</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/Bestuursvergadering2mei.pdf">Bestuursvergadering mei 2013</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/Bestuursvergadering_28_maart_2013.pdf">Bestuursvergadering 28 maart 2013</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/Bestuursvergadering_2013_maart_14.pdf">Bestuursvergadering 14 maart 2013</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/Bestuursvergadering_2013_januari_31.pdf">Bestuursvergadering januari 2013</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/BestuursvergaderingNovember2012.pdf">Bestuursvergadering november 2012</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/BestuursvergaderingOktober2012.pdf">Bestuursvergadering oktober 2012</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/BestuursvergaderingSeptember2012.pdf">Bestuursvergadering september 2012</a><br />
<h3>Vóór 2012</h3>
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/Bestuursvergadering29jun2011.pdf">Bestuursvergadering juni 2011</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/verslag-2010-08-14.pdf">Bestuursvergadering augustus 2010</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/verslag-2010-04-13.pdf">Bestuursvergadering april 2010</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/verslag-2009-12-10.pdf">Bestuursvergadering december 2009</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/verslag-2009-07-30.pdf">Bestuursvergadering 30 juli 2009</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/verslag-2009-07-13.pdf">Bestuursvergadering 13 juli 2009</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/verslag-2009-07-09.pdf">Bestuursvergadering 9 juli 2009</a><br />
<a href="http://zeus.ugent.be/wp-content/uploads/2014/08/ledenvergadering-2006.pdf">Ledenvergadering 2006</a><br />
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.3 KiB

View file

@ -6,5 +6,5 @@ $ ->
$('#tipue_search_input').removeClass("focused")
$('.nav-toggle').click ->
$('.nav-menu').toggleClass('open')
console.log 'heuj'
$('.nav-menu').toggleClass('is-active')
$('.nav-toggle').toggleClass('is-active')

View file

@ -1,9 +1,3 @@
.blogpost {
.blogtitle {
font-size: 4em;
}
}
#markdown-toc {
@extend .menu-list;
@ -13,6 +7,7 @@
}
}
// Definition list is not defined in bulma
dl {
dt {
display: inline;
@ -29,10 +24,6 @@ dl {
}
}
.padbox {
margin-bottom:10px;
}
.blogwidth{
width: 75%;
margin:auto;

View file

@ -40,7 +40,7 @@
background-color: $cammie-controls-color;
color: white;
&:hover {
background-color: $zeus_orange;
background-color: $zeus-orange;
cursor: pointer;
}

View file

@ -33,3 +33,17 @@
vertical-align: baseline;
}
}
.header-text {
float: left;
padding: 20px;
&.light-background {
background-color: rgba(0, 0, 0, 0.5);
}
}
.has-vertical-center {
display: flex;
align-items: center;
}

View file

@ -1,16 +1,21 @@
// Small helper in bulma style
.has-text-justified {
text-align: justify;
}
html, .footer {
background-color: white;
// Override box styling without round corners
.box {
margin-bottom:10px;
border-radius: 0 !important;
}
// Add some hero attributes to make backgrounds prettier
.hero {
background-position: center;
background-size: cover;
}
// link borders are unnecessary
.content {
a {
&:not(.button) {
@ -23,20 +28,21 @@ html, .footer {
}
}
#navbar {
margin-bottom: 10px;
footer .content a {
&:not(.button) {
color: $text-light;
.logo-wrapper {
padding-bottom: 0;
}
&:visited {
color: $text-light;
}
.actual-nav-bar {
padding-bottom: 0;
border-bottom: 1px solid #eee;
&:hover {
color: $link-hover;
}
}
}
// Proper padding of these sections
header.section {
padding-bottom: 10px;
}
@ -45,65 +51,17 @@ main.section {
padding-top: 20px;
}
#navbar {
align-items: flex-end;
#inline-logo {
min-width: 38.703px;
}
#logo-link {
#logo {
padding-top: 10px;
padding-left: 10px;
width: 100px;
}
}
.nav {
height: 100%;
align-items: flex-end;
.nav-item {
transition: 0.2s;
font-variant: small-caps;
font-size: 1.15em;
&:hover {
transition: 0.2s;
}
&.social-icon {
padding-left: 5px;
padding-right: 5px;
}
&.is-tab {
border-bottom: 3px solid transparent;
border-top: 3px solid transparent;
&:hover, &.is-active {
border-bottom-color: $zeus-orange;
}
}
}
}
}
footer.footer {
padding-bottom: 40px;
.fa {
vertical-align: inherit;
}
}
// Cursor highlight color
::selection {
color: white;
background: rgba(255, 127, 0, 0.99);
}
.imgcenter {
.has-content-centered, .imgcenter {
display: flex;
justify-content: center;
align-items: center;
@ -134,7 +92,7 @@ footer.footer {
overflow: hidden;
transition: all 0.30s ease-in-out;
&.open {
&.is-active {
max-height: 250px;
}
}
@ -142,6 +100,7 @@ footer.footer {
//for better spacing on mobile
header.section {
padding: 0px 0px;
padding-bottom: 15px;
}
main.section {
@ -153,49 +112,14 @@ footer.footer {
}
}
#tipue_search_input {
background: none;
padding: 12px;
font: inherit;
color: inherit;
width: 40px;
border-color: rgba(0, 0, 0, 0);
display: flex;
flex-direction: row;
justify-content: inherit;
transition: all 0.5s;
input {
background: none;
border: none;
-moz-appearance: none;
-webkit-appearance: none;
box-shadow: none;
outline: 0;
margin: 0;
color: inherit;
}
&:hover, &:focus, &.focused {
width: 170px;
border: 1px solid #e2e2e2;
}
&::before {
font: normal normal normal 14px/1 FontAwesome;
content: "\f002 ";
color: inherit;
padding-right: 5px;
}
}
.fa {
vertical-align: baseline;
}
.subnav {
margin-top: -20px;
}
.heart {
color: $red;
}

View file

@ -0,0 +1,81 @@
#navbar {
align-items: flex-end;
z-index: 100;
margin-bottom: 10px;
.logo-wrapper {
padding-bottom: 0;
position: relative;
#santa {
position: absolute;
z-index: 500;
left: 27px;
top: -1px;
width: 40px;
transform: scale(-1, 1);
}
}
.nav-menu {
z-index: 20;
}
.actual-nav-bar {
padding: 0;
margin: 10px;
margin-bottom: 0;
border-bottom: 1px solid #eee;
}
#inline-logo {
min-width: 38.703px;
}
#logo-link {
#logo {
padding-top: 10px;
padding-left: 10px;
width: 100px;
}
}
//Height of the line underneath when hovering over a menu item
$border-height: 3px;
.nav {
height: 100%;
align-items: flex-end;
z-index: auto;
.nav-item {
transition: 0.2s;
font-variant: small-caps;
font-size: 1.15em;
&:not(.nav-search) {
border-bottom: $border-height solid transparent;
border-top: 3px solid transparent;
}
&:hover {
transition: 0.2s;
}
&.social-icon {
padding-left: 5px;
padding-right: 5px;
}
&:not(.nav-search):hover, &.is-active {
border-bottom-color: $zeus-orange;
}
}
.nav-search {
margin-bottom: $border-height;
}
}
}

View file

@ -7,6 +7,14 @@
div {
margin: 10px;
}
img {
width: 200px;
}
}
.clear {
clear: both;
}
@media (max-width: #{$tablet}) {
@ -21,7 +29,7 @@
}
.project {
background-color: $body-background;
background-color: $background;
margin-top: 30px;
}

View file

@ -0,0 +1,42 @@
#tipue_search_input {
background: none;
padding: 12px;
font: inherit;
color: inherit;
width: 40px;
border-color: rgba(0, 0, 0, 0);
display: flex;
flex-direction: row;
justify-content: inherit;
transition: all 0.5s;
input {
background: none;
border: none;
-moz-appearance: none;
-webkit-appearance: none;
box-shadow: none;
outline: 0;
margin: 0;
color: inherit;
}
&:hover, &:focus, &.focused {
width: 170px;
border: 1px solid #e2e2e2;
}
&::before {
font: normal normal normal 14px/1 FontAwesome;
content: "\f002 ";
color: inherit;
padding-right: 5px;
}
}

View file

@ -7,6 +7,10 @@ a.box {
#homepage {
.box {
border-radius: 0;
img {
width: 100%;
}
}
}
@ -64,5 +68,35 @@ a.box {
}
}
}
}
#blokmap-tile {
position: relative;
height: 200px;
//background-image: url("https://i.imgur.com/PMaIG7X.jpg");
background-image: url("https://cldup.com/-FmSDFbd07.jpg");
background-position: center;
.overlay {
left: 0;
top: 0;
position: absolute;
height: 100%;
width: 100%;
background-color: rgba(0, 0, 0, 0.2);
}
.content {
position: relative;
h1, h2 {
color: white;
}
h2 {
margin-top: 0;
}
}
}

View file

@ -2,6 +2,8 @@
$zeus-orange: #FF7F00;
$zeus-blue: #00C4FF;
$body-background: white;
$tile-orange: #ff9f1a;
$navbar-border-color: #CCC;
@ -27,3 +29,6 @@ $highlighted-link-colour: #222324;
$cammie-controls-color: rgba(0, 0, 0, 0.60);
$event-padding: 10px;
// Default font size
$size-6: 15px;

View file

@ -10,6 +10,8 @@
// Sticky footer
body.site {
overflow-x: hidden;
display: flex;
min-height: 100vh;
flex-direction: column;
@ -28,3 +30,5 @@ body.site {
@import "includes/eventpage";
@import "includes/404";
@import "includes/projects";
@import "includes/navbar";
@import "includes/search";

View file

@ -26,3 +26,13 @@ Door je in te schrijven krijgen wij een beter beeld van hoeveel volk we kunnen v
De deuren openen om 16:00. We vragen €2 inkom, die gebruikt zal worden om de prijzenpot van onze competities aan te dikken.
Uit ervaring weten we dat het soms wat kouder kan worden in de Therminal rondom die tijd, dus draag zeker een **trui** of iets dergelijks! We doen echter ons best om de verwarming in orde te krijgen.
## Timetable
| Tijdstip | Activiteit |
| :------------- | :------------- |
| 18:00 | Competitie Trackmania Nations |
| 20:00 | Competitie Nidhogg |
| 22:00 | Competitie Counter-Strike: Global Offensive |
| 00:00 | Competitie League of Legends |
{: .table .is-striped}

View file

@ -0,0 +1,39 @@
---
title: Exotische en frustrerende talen avond
description: Ontdek verschillende esoterische talen en win de meest exotische prijs!
created_at: 30-11-2016
time: 07-12-2016 18:00
location: Lokaal V1, S9
locationlink: Sterre,Ghent Belgium
facebook: //www.facebook.com/events/1483447151684405/
banner: //zeus.ugent.be/zeuswpi/6DthpGAV.png
image: //zeus.ugent.be/zeuswpi/VPQevc5x.gif
---
Het laatste Zeus evenement van het semester komt er aan, en deze keer gaan we het onbekende verkennen!
Woensdagavond begeven de tovenaars van Zeus zich, samen met jullie, in de magische wereld van de esoterische talen.
Kom, als je durft, in mini teams (van zo'n 2-4 tovenaars) op woe 7/12 om 18u naar V1, om te bewijzen dat jullie het best en het snelst deze vreemde programmeertalen kunnen schrijven en begrijpen!
Met de mooiste oplossing kun je exotische prijzen winnen, de meest gefrustreerde tovenaar krijgt kalmerende middelen toegestopt.
Voor de Dreuzels onder ons; voorbeelden van esoterische talen zijn Brainfuck, Whitespace, Piet en Lolcode.
De exotische en frustrerende talen avond zal als volgt verlopen:
Er wordt een inleiding gegeven van de verschillende talen die jullie eventueel gaan moeten gebruiken.
Je hebt dus geen kennis nodig alvorens deel te nemen.
Elk groepje krijgt een opdracht en een bijhorende taal, en krijgt tijd om deze te implementeren.
Alle oplossingen worden ingediend, en weer verspreid. Elk groepje heeft nu dus de code van een andere groep voor zich.
Het doel van deze ronde is het achterhalen van het doel van het programma.
Hierna kan elke groep stemmen op de mooiste oplossing.
Punten vallen als volgt te verdienen:
* door het correct implementeren van je opdracht, in de gegeven taal
* door het ontcijferen van de code die je gekregen hebt
* door de mooiste, origineelste of meest exotische code te schrijven, en zo stemmen te vergaren van de andere groepen
Hier alvast een introductie tot de exotische talen die Zeus jullie op deze avond voorsteld: [bekijk ze hier!](https://docs.google.com/presentation/d/1OFkRIhn8C-Bij71c5Ahon6WjsYV8PEn5xbWnYN3Kj1Q/pub?start=false&loop=false&delayms=3000)

View file

@ -0,0 +1,15 @@
---
title: FOSDEM
description: Zeus gaat naar FOSDEM
created_at: 27-12-2016
time: 04-02-2017
location: ULB Campus Solbosch
locationlink: 50.813014, 4.381760
banner: //fosdem.org/2017/assets/style/fosdem-home-visual-a4f55964bc6492855a435b88874f4a7dddac0ea3c2927e64e0608adc18e24dd2.jpg
image: //fosdem.org/2017/assets/style/logo-gear-7204a6874eb0128932db10ff4030910401ac06f4e907f8b4a40da24ba592b252.png
---
Het is weer bijna zo ver: op 4 en 5 februari gaat FOSDEM door aan de ULB Solbosch campus in Brussel. Voor zij die het nog niet weten: FOSDEM staat voor Free and Open source Software Developers' European Meeting en is één van de grootste gelijkaardige evenementen in Europa. Naast honderden interessante talks in tientallen devrooms en auditoria, krijg je de kans om soortgenoten te ontmoeten en ideeën uit te wisselen. Een echte topper dus in het boekje van de Zeus'er!
Om samen te kunnen gaan en de verplaatsing wat makkelijker te maken organiseert Zeus het vervoer met behulp van carpooling. Voor zij die mee willen gaan, je kunt je [hier](https://goo.gl/forms/XMulCMZ1EXxE6uZJ3) inschrijven. Gelieve het aan te geven als je met een auto kunt komen, zodat we zo gezellig en efficiënt mogelijk ter plaatste geraken.
Meer info over het vertrekuren op zaterdag en zondag volgt later, houd deze pagina dus zeker in de gaten!

View file

@ -0,0 +1,31 @@
---
title: Hashcode
description: Zeus organiseert een UGent Hashcode Hub
created_at: 27-01-2017
time: 23-02-2017 18:30
location: A3, S9
locationlink: Sterre,Ghent Belgium
banner: https://hashcode.withgoogle.com/resources/images/hero_2.jpg
image: https://zeus.ugent.be/zeuswpi/I9GAh7iy.png
facebook: https://www.facebook.com/events/179465822503595/
header_text_background: true
---
# Google Hashcode
Ook dit jaar organiseren we een hub voor de Google Hashcode. Dit is een jaarlijkse programmeerwedstrijd van Google waarin je in een team van 2 tot 4 personen een probleem voorgeschoteld krijgt die je mag oplossen in een programmeertaal naar keuze. De wedstrijd is gericht op studenten en professionals.
De online kwalificatieronde vindt plaats op 23 februari om 18:30. Je kan deelnemen met je team in onze hub _Ghent University_ in gebouw S9 op Campus Sterre, lokaal A3.
De best scorende teams worden uitgenodigd bij Google Parijs op 1 april om mee te doen aan de finale ronde van de competitie.
## Registratie
Registreer je **voor 5 februari** op [g.co/hashcode](https://g.co/hashcode) en selecteer **onze hub _Ghent University_**. Hoe meer teams zich registreren bij onze hub, hoe meer goodies we kunnen uitdelen!
## Benodigdheden
Om alles optimaal te laten verlopen willen we jullie vragen om je eigen verdeelstekker mee te brengen. Wij zorgen voor drank en snacks.
## 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. Vorig jaar kwam het optimaliseren van routes voor drones en satellieten aan bod. Opgaven van de vorige jaren kan je [hier](https://hashcode.withgoogle.com/past_editions.html) vinden.
Tot dan!

View file

@ -6,6 +6,7 @@
<div id="homepage">
<div class="tile is-vertical is-ancestor">
<%= render '/tiles/blokmap.*' %>
<div class="tile is-parent is-12">
<div class="tile is-child box highlighted">
<div class="content">
@ -18,7 +19,7 @@
</div>
<div class="tile">
<div class="tile is-parent is-4">
<%= render '/partials/_tile.*', article: upcoming_events[0], small_text: "Upcoming event" %>
<%= render '/partials/_tile.*', article: upcoming_events[0] || all_events[-1], small_text: if upcoming_events[0] then "Upcoming event" else "Past event" end %>
</div>
<div class="tile is-parent is-4">
<div class="tile is-child box centering">
@ -31,14 +32,12 @@
</div>
<div class="tile is-parent is-2">
<a class="tile box is-child imgcenter project-tile" href="/projects/#12urenloop">
<div class="logo-index has-text-centered">
12UL
</div>
<%= asset :img, '12urenloop.png' %>
</a>
</div>
<div class="tile is-parent is-2">
<a class="tile is-child imgcenter box hydra-tile" href="/projects/#hydra">
<%= asset :img, 'hydra-logo.png' %>
<%= asset :img, 'hydra-logo.svg' %>
</a>
</div>
</div>
@ -48,9 +47,7 @@
</div>
<div class="tile is-vertical">
<div class="tile is-parent">
<% if upcoming_events[1] %>
<%= render '/partials/_tile.*', article: upcoming_events[1], small_text: "Upcoming event" %>
<% end %>
<%= render '/partials/_tile.*', article: upcoming_events[1] || all_events[-2], small_text: if upcoming_events[1] then "Upcoming event" else "Past event" end %>
</div>
</div>
</div>

View file

@ -7,7 +7,7 @@ order: 30
<article id="hydra" class="columns">
<div class="column is-one-quarter" id="logo-column">
<div class="hydra-scrot">
<img src="/assets/images/hydra.png">
<%= asset :img, 'hydra.png' %>
</div>
</div>
<div class="column rows">
@ -19,18 +19,23 @@ order: 30
<div class="columns links">
<div class="has-text-centered">
<a href="https://itunes.apple.com/be/app/hydra/id602640924">
<%= svg 'apple' %>
<%= asset :img, 'apple.svg' %>
</a>
<div class="clear"></div>
<a href="https://github.com/ZeusWPI/hydra-iOS">iOS <span class="icon"><%= fa('github') %></span></a>
</div>
<div class="has-text-centered">
<a href="http://play.google.com/store/apps/details?id=be.ugent.zeus.hydra">
<%= svg 'google' %>
<%= asset :img, 'google.svg' %>
</a>
<div class="clear"></div>
<a href="https://github.com/ZeusWPI/hydra-android">Android <span class="icon"><%= fa('github') %></span></a>
</div>
<div class="has-text-centered">
<a href="http://www.windowsphone.com/s?appId=08d3268e-aad6-48fa-ae83-5ccd1663e73a"><%= svg 'windows' %></a>
<a href="http://www.windowsphone.com/s?appId=08d3268e-aad6-48fa-ae83-5ccd1663e73a">
<%= asset :img, 'windows.svg' %>
</a>
<div class="clear"></div>
<a href="https://github.com/ZeusWPI/hydra-windows">Windows 10 <span class="icon"><%= fa('github') %></span></a>
</div>
</div>

View file

@ -1,8 +1,7 @@
---
title: 12urenloop
description: Application to count laps based on bluetooth dongle detection. <a href="http://12urenloop.be">http://12urenloop.be</a>
github: https://github.com/ZeusWPI/12urenloop
site: https://12urenloop.be/
logo_letter: L
logo_color: "#6094DB"
logo_image: 12urenloop.png
---
Application to count laps based on bluetooth dongle detection. [http://12urenloop.be](http://12urenloop.be)

View file

@ -1,8 +1,8 @@
---
title: Badass Bottle Bats
description: A bot writing contest. <a href="https://zeus.ugent.be/bottlebats">https://zeus.ugent.be/bottlebats</a>
github: https://github.com/ZeusWPI/aichallenge
site: https://zeus.ugent.be/bottlebats/
logo_letter: B
logo_color: "#FFD062"
---
A bot writing contest. [https://zeus.ugent.be/bottlebats](https://zeus.ugent.be/bottlebats)

View file

@ -1,10 +1,11 @@
---
title: BlokMap
description: "
Een collectie bloclokaties die jou helpt een plaats te vinden om te blokken tijdens de examens. <br>
Vind de map <a href='http://blok.ugent.be/'>hier</a>!"
title: Blokmap
github: https://github.com/ZeusWPI/blokmap
site: http://blok.ugent.be/
logo_letter: B
logo_color: "#E0FFFF"
---
Een collectie bloklocaties die jou helpt een plaats te vinden om te blokken tijdens de examens.
Vind de map [hier](http://blok.ugent.be/)!

View file

@ -1,8 +1,9 @@
---
title: FK Enrolment.
description: Enrolment system for new members of FK-clubs at Ghent University.
github: https://github.com/ZeusWPI/FK-enrolment
site: https://registratie.fkgent.be/
logo_letter: E
logo_color: "#FFBBDD"
---
Enrolment system for new members of FK-clubs at Ghent University.

View file

@ -1,10 +1,8 @@
---
title: Gamification
description: "
Gamification of Zeus member engagement. Get points for coding!
View the <a href='https://zeus.ugent.be/game'>scoreboard</a>."
github: https://github.com/ZeusWPI/Gamification
site: https://zeus.ugent.be/game
logo_letter: G
logo_color: "#F08080"
---
Gamification of Zeus member engagement. Get points for coding! View the [scoreboard](https://zeus.ugent.be/game).

View file

@ -1,8 +1,9 @@
---
title: Gandalf
description: You Shall Not Pass - An advanced e-ticket system for student clubs - <a href="http://event.fkgent.be">http://event.fkgent.be</a>
github: https://github.com/ZeusWPI/Gandalf
site: https://event.fkgent.be/
logo_letter: G
logo_color: "#F3F8F4"
---
You Shall Not Pass - An advanced e-ticket system for student clubs - [http://event.fkgent.be](http://event.fkgent.be)

View file

@ -1,8 +1,9 @@
---
title: Haldis
description: Haldis is your friendly neighbourhood servant. He exists so lazy fucks like you and me don't need to keep tabs of who is ordering what from where. Start an order and let people add items with a simple mouse-click! No more calculating prices and making lists! Be lazier today! <a href="http://zeus.ugent.be/haldis">http://zeus.ugent.be/haldis</a>
github: https://github.com/ZeusWPI/Haldis
site: https://zeus.ugent.be/haldis
logo_letter: H
logo_color: black
---
Haldis is your friendly neighbourhood servant. He exists so lazy fucks like you and me don't need to keep tabs of who is ordering what from where. Start an order and let people add items with a simple mouse-click! No more calculating prices and making lists! Be lazier today! [http://zeus.ugent.be/haldis](http://zeus.ugent.be/haldis)

View file

@ -1,8 +1,9 @@
---
title: Lana
description: 🐕 LAN-Party Assistant. An application to make the life of a LAN-partygoer easier!
github: https://github.com/ZeusWPI/Lana
site: https://github.com/ZeusWPI/Lana
logo_letter: L
logo_color: "#E4C6A7"
---
🐕 LAN-Party Assistant. An application to make the life of a LAN-partygoer easier!

View file

@ -1,8 +1,9 @@
---
title: Saruman
description: Saruman is a material management tool where partners can reserve stuff.
github: https://github.com/ZeusWPI/Saruman
site: https://materiaal.12urenloop.be/
logo_letter: S
logo_color: grey
---
Saruman is a material management tool where partners can reserve stuff.

View file

@ -1,8 +1,9 @@
---
title: SlotMachien
description: This repository contains all applications related to SlotMachien; a Lego MindStorms robot designed to turn a specific lock.
github: https://github.com/ZeusWPI/slotmachien
site: https://github.com/ZeusWPI/slotmachien
logo_letter: S
logo_color: "#FFF06A"
---
This repository contains all applications related to SlotMachien; a Lego MindStorms robot designed to turn a specific lock.

View file

@ -1,8 +1,9 @@
---
title: Tab
description: 💰 Yes. We have to drink. But we also have to pay. This does the paying part. <a href="https://zeus.ugent.be/tab">https://zeus.ugent.be/tab</a>
github: https://github.com/ZeusWPI/Tab
site: https://zeus.ugent.be/tab/
logo_letter: T
logo_color: "#BAFEA3"
---
💰 Yes. We have to drink. But we also have to pay. This does the paying part. [https://zeus.ugent.be/tab](https://zeus.ugent.be/tab)

View file

@ -1,8 +1,9 @@
---
title: Tap
description: 💰 Yes. We have to drink. But we also have to pay. This does the drinking part. <a href="https://zeus.ugent.be/tap">https://zeus.ugent.be/tap</a>
github: https://github.com/ZeusWPI/Tap
site: https://zeus.ugent.be/tap/
logo_letter: T
logo_color: "#BAFEA3"
---
💰 Yes. We have to drink. But we also have to pay. This does the drinking part. [https://zeus.ugent.be/tap](https://zeus.ugent.be/tap)

View file

@ -1,38 +1,52 @@
<div class="columns is-flex-mobile" >
<div class="columns" >
<div class="column is-2 is-narrow">
<aside class="menu">
<p class="menu-label">
Academiejaar
</p>
<ul class="menu-list">
<% academic_years_items.each do |year, item| %>
<% if @item_rep && @item_rep.path == item.path %>
<li>
<a href="#" class="is-active">
<%= pretty_year(year) %>
</a>
</li>
<% else %>
<li>
<%= link_to pretty_year(year), item %>
</li>
<% end %>
<% end %>
</ul>
</aside>
</div>
<div class="column">
<% posts_in_year(item[:academic_year]).each do |post| %>
<a href="<%= relative_path_to(post) %>" >
<div class="box padbox">
<article class="media">
<div class="media-content">
<% posts_in_year(item[:academic_year]).each do |post| %>
<a href="<%= relative_path_to(post) %>">
<article class="box padbox">
<div class="columns">
<div class="column">
<p class="title is-3"><%= post[:title] %></p>
<p class="subtitle is-5">
<% if post[:author] %>
door <%= post[:author] %>
<% end %>
</p>
<div class="content">
<h2><%= post[:title] %> <small> <%= post[:created_at] %></small></h2>
<%= post[:description] %>
<br>
<small><%= post[:created_at] %></small>
</div>
</div>
</article>
</div>
<div class="column">
<div class="content">
<%= excerptize(post.reps[:text].compiled_content, length: 200).tr("\n", ' ')%>
</div>
</div>
</div>
</article>
</a>
<% end %>
<% end %>
</div>
<aside class="column is-narrow menu">
<p class="menu-label">
Academic Year
</p>
<ul class="menu-list">
<% academic_years_items.each do |year, item| %>
<% if @item_rep && @item_rep.path == item.path %>
<li>
<a href="#" class="is-active">
<%= pretty_year(year) %>
</a>
</li>
<% else %>
<li>
<%= link_to pretty_year(year), item %>
</li>
<% end %>
<% end %>
</ul>
</aside>
</div>

View file

@ -1,20 +1,27 @@
<h1 class="title is-1 has-text-centered">
<%= item[:title] %>
</h1>
<% if item[:author] %>
<h2 class="subtitle is-3 has-text-centered">
<% if item[:lang] == :en %>
by
<% else %>
door
<% end %>
<%= item[:author] %>
</h2>
<% end %>
<div class="content columns">
<div class="column is-2"></div>
<main class="column">
<%= yield %>
</main>
<div class="column is-2"></div>
<div class="columns">
<article class="column is-8 is-offset-2">
<div class="heading">
<h1 class="title is-1 has-text-centered">
<%= item[:title] %>
</h1>
<% if item[:author] %>
<h2 class="subtitle is-3 has-text-centered">
<% if item[:lang] == :en %>
by
<% else %>
door
<% end %>
<%= item[:author] %>
</h2>
<% end %>
<p class="has-text-centered">
<small>Geschreven op <%= item[:created_at] %></small><br>
Leestijd: <%= reading_time @item %>
</p>
<hr>
</div>
<div class="content is-medium">
<%= yield %>
</div>
</article>
</div>

View file

@ -25,9 +25,6 @@
<%= asset :js, :tipuesearch %>
<%= asset :js, :search %>
<!-- Place this tag in your head or just before your close body tag. -->
<script async defer src="https://buttons.github.io/buttons.js"></script>
<!-- Google Analytics -->
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
@ -36,6 +33,18 @@
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
<!-- Hotjar Tracking Code for zeus.ugent.be -->
<script>
(function(h,o,t,j,a,r){
h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
h._hjSettings={hjid:392303,hjsv:5};
a=o.getElementsByTagName('head')[0];
r=o.createElement('script');r.async=1;
r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
a.appendChild(r);
})(window,document,'//static.hotjar.com/c/hotjar-','.js?sv=');
</script>
<%= asset :css, :main %>
<!-- Font Awesome -->
@ -48,7 +57,7 @@
<body class="site">
<div class="wrapper">
<%= yield %>
</div>
</div>
<%= render '/partials/_footer.*' %>
</body>
</html>

View file

@ -23,31 +23,33 @@
<div class="hero-body">
<div class="container">
<div class="columns">
<div class="column">
<p class="title is-1">
<b>
<%= item[:title] %>
</b>
<span class="event-social-icons">
<% if item[:facebook] %>
<a href="<%= item[:facebook] %>">
<%= fa :facebook %>
</a>
<% end %>
<a href="<%= item.path rep: :ical %>">
<%= fa :calendar %>
</a>
</span>
</p>
<p class="subtitle is-3">
<%= item[:description] %>
</p>
<p class="subtitle is-3">
<ul class="fa-ul event-attributes">
<li><%= fa 'clock-o', li: true %><%= item[:time].strftime '%A %d %B %Y %H:%M' %></li>
<li><%= fa 'map-marker', li: true %><%= item[:location] %></li>
</ul>
</p>
<div class="column has-vertical-center">
<div class="header-text <%= item[:header_text_background] ? 'light-background' : '' %>">
<p class="title is-1">
<b>
<%= item[:title] %>
</b>
<span class="event-social-icons">
<% if item[:facebook] %>
<a href="<%= item[:facebook] %>">
<%= fa :facebook %>
</a>
<% end %>
<a href="<%= item.path rep: :ical %>">
<%= fa :calendar %>
</a>
</span>
</p>
<p class="subtitle is-3">
<%= item[:description] %>
</p>
<p class="subtitle is-3">
<ul class="fa-ul event-attributes">
<li><%= fa 'clock-o', li: true %><%= item[:time].strftime '%A %d %B %Y %H:%M' %></li>
<li><%= fa 'map-marker', li: true %><%= item[:location] %></li>
</ul>
</p>
</div>
</div>
<div class="is-narrow column banner-image">
@ -68,10 +70,7 @@
</div>
<div class="columns">
<div class="google-maps column is-8 is-offset-2">
<iframe
frameborder="0" style="border:0"
src="<%= locationlink item[:locationlink] %>" allowfullscreen>
</iframe>
<iframe frameborder="0" style="border:0" src="<%= locationlink item[:locationlink] %>" allowfullscreen> </iframe>
</div>
</div>
</section>

View file

@ -3,6 +3,14 @@
<%= render '/partials/_navbar.*' %>
</header>
<main class="section">
<%= yield %>
<% if item[:narrow_page] %>
<div class="columns">
<article class="column is-8 is-offset-2">
<% end %>
<%= yield %>
<% if item[:narrow_page] %>
</div>
</article>
<% end %>
</main>
</div>

View file

@ -0,0 +1,8 @@
<div class="subnav tabs">
<ul>
<li class="<%= "is-active" if @selected == 'about'%>"><a href="/about">Over</a></li>
<li class="<%= "is-active" if @selected == 'statuten'%>"><a href="/about/statuten">Statuten</a></li>
<li class="is-disabled"><a>Historiek (soon)</a></li>
<li class="is-disabled"><a>Verslagen (soon)</a></li>
</ul>
</div>

View file

@ -1,8 +1,35 @@
<footer class="footer">
<div class="container">
<div class="content has-text-centered">
<p class="is-hidden-tablet">
<a class="icon" href="https://github.com/ZeusWPI" target="_blank">
<span class="icon">
<%= fa :github %>
</span>
</a>
<a class="icon" href="https://www.facebook.com/zeus.wpi/" target="_blank">
<span class="icon">
<%= fa :facebook %>
</span>
</a>
<a class="icon" href="/feed.xml" target="_blank">
<span class="icon">
<%= fa :rss %>
</span>
</a>
<a class="icon" href="/ical.ics">
<span class="icon">
<%= fa :calendar %>
</span>
</a>
<a class="icon" href="//zeus.ugent.be/wiki">
<span class="icon">
<%= fa :'wikipedia-w' %>
</span>
</a>
</p>
<p>
Made with <%= fa :heart %> by Zeus WPI
Made with <%= fa :heart, class: 'heart' %> by Zeus WPI
</p>
<p>
<a href="https://github.com/ZeusWPI/zeus.ugent.be">

View file

@ -2,6 +2,9 @@
<div class="columns">
<div class="logo-wrapper column is-narrow is-hidden-mobile">
<a id="logo-link" href="/">
<% if christmastime? %>
<img id="santa" src="https://upload.wikimedia.org/wikipedia/commons/c/c0/Santa_hat.svg">
<% end %>
<img id="logo" src="<%= zeus_logo_url color: @zeus_logo_color %>" alt="" />
</a>
</div>
@ -24,7 +27,7 @@
<div class="nav-right">
<form action="/search/?" method="get">
<div id="tipue_search_input" class="nav-item">
<div id="tipue_search_input" class="nav-item nav-search">
<input type="text" name="q" id="tipue_search_input_field" autocomplete="off">
</div>
</form>
@ -36,7 +39,7 @@
<span></span>
</span>
<div class="nav-right is-hidden-mobile social-icons">
<div class="nav-right is-hidden-mobile">
<a class="nav-item social-icon" href="https://github.com/ZeusWPI" target="_blank">
<span class="icon">
<%= fa :github %>

View file

@ -1,14 +1,20 @@
<div id="<%= project.identifier.without_ext.split('/')[-1] %>" class="container project content">
<article class="columns is-mobile">
<div class="column is-one-quarter" id="logo-column">
<div class="logo" style="background-color: <%= project[:logo_color]%>">
<div class="logo-initial has-text-centered"><%= project[:logo_letter]%></div>
</div>
<div class="column is-one-quarter">
<% if project[:logo_image] %>
<div class="logo">
<%= asset :img, project[:logo_image] %>
</div>
<% else %>
<div class="logo" style="background-color: <%= project[:logo_color]%>">
<div class="logo-initial has-text-centered"><%= project[:logo_letter]%></div>
</div>
<% end %>
</div>
<div class="column">
<p class="title"><a href="<%=project[:site]%>" target="_self"><%=project[:title]%></a></p>
<p class="description subtitle"><%=project[:description]%></p>
<div><a href="<%=project[:github]%>">GitHub<span class="icon"><i class="fa fa-github"></i></span></a></div>
<p class="title"><a href="<%= project[:site] %>" target="_self"><%= project[:title] %></a></p>
<p class="description subtitle"><%= project.compiled_content %></p>
<div><a href="<%= project[:github] %>">GitHub<span class="icon"><i class="fa fa-github"></i></span></a></div>
</div>
</article>
</div>

15
layouts/tiles/blokmap.erb Normal file
View file

@ -0,0 +1,15 @@
<div class="tile is-parent is-12">
<div id="blokmap-tile" class="tile is-child box has-content-centered">
<a href="http://blok.ugent.be">
<div class="overlay"><!-- EMPTY --></div>
<div class="content is-large has-text-centered">
<h1>
<b>Zoek de beste plek om te blokken!</b>
</h1>
<h2>
blok.ugent.be
</h2>
</div>
</a>
</div>
</div>

5
lib/filters/htmlpress.rb Normal file
View file

@ -0,0 +1,5 @@
require 'html_press'
Nanoc::Filter.define(:html_press) do |content, _params|
HtmlPress.press content
end

View file

@ -1,13 +1,13 @@
module AssetHelper
def asset(type, identifier)
{
img: "<img src='/assets/images/#{identifier}'/>",
img: "<img src='/assets/images/#{identifier}' alt='#{identifier}' />",
js: "<script src='/assets/scripts/#{identifier}.js'></script>",
css: "<link rel='stylesheet' type='text/css' href='/assets/stylesheets/#{identifier}.css'>"
}[type]
end
def zeus_logo_url(color: :black)
"https://werthen.com/zinc/zeuslogo.svg?color=#{color}"
"https://zeus.ugent.be/zinc/zeuslogo.svg?color=#{color}"
end
end

16
lib/helpers/blog.rb Normal file
View file

@ -0,0 +1,16 @@
require 'words_counted'
module BlogHelper
def reading_time(blogpost)
human_wpm = 200.0
words = WordsCounted.count(blogpost.reps[:text].compiled_content).token_count
minutes = (words / human_wpm).ceil
if minutes == 1
"#{minutes} minuut"
else
"#{minutes} minuten"
end
end
end

View file

@ -1,6 +1,6 @@
module EnvironmentHelper
def production?
ENV['ZEUS_PRODUCTION']
ENV['NANOC_ENV'] == 'prod'
end
def development?

View file

@ -1,7 +1,7 @@
require 'uri'
module EventsHelper
def all_events
@items.find_all('/events/*/*').sort_by { |x| x[:time] }
@items.find_all('/events/*/*.md').sort_by { |x| x[:time] }
end
def upcoming_events
@ -9,7 +9,7 @@ module EventsHelper
end
def past_events
all_events.reject { |x| x[:time] > Date.today }
all_events.reject { |x| x[:time] > Date.today }.reverse
end
def grouped_events

View file

@ -1,12 +1,13 @@
module FontAwesomeHelper
def fa(icon, size: nil, li: false, stack: nil, inverse: false)
def fa(icon, opts = {})
classes = ['fa', "fa-#{icon}"]
classes << "fa-#{size}" if size
classes << 'fa-li' if li
classes << "fa-stack-#{stack}" if stack
classes << 'fa-inverse' if inverse
classes << "fa-#{opts[:size]}" if opts[:size]
classes << 'fa-li' if opts[:li]
classes << "fa-stack-#{opts[:stack]}" if opts[:stack]
classes << 'fa-inverse' if opts[:inverse]
classes << opts[:class]
"<i class='#{classes.join(' ')}'></i>"
"<i class='#{classes.reject(&:nil?).join(' ')}'></i>"
end
end

44
lib/helpers/preprocess.rb Normal file
View file

@ -0,0 +1,44 @@
module PreprocessHelper
def ignore_old_blogposts
@items.delete_if do |item|
next unless item.identifier.to_s.start_with?('/blog/')
!item.identifier.to_s.start_with?('/blog/16-17/')
end
end
def update_blog_attributes
@items.find_all('/blog/**/*').each do |i|
year_str = %r{/(\d\d)-\d\d/}.match(i.identifier).captures[0]
attr_hash = {
# Tag all posts with article (for Blogging helper)
kind: 'article',
academic_year: year_str.to_i
}
i.update_attributes(attr_hash)
end
end
def create_blog_items
# academic_years is defined in archives.rb
academic_years.each do |year|
@items.create(
'',
{ academic_year: year, title: 'Blog' },
"/blog/#{year}-#{year + 1}.html"
)
end
academic_years_items[academic_years.max].update_attributes(
navigable: true,
order: 10
)
end
def convert_event_time_to_timestamps
all_events.each do |event|
event[:time] = DateTime.parse(event[:time])
end
end
end

View file

@ -3,10 +3,4 @@ module ProjectsHelper
def all_projects
@items.find_all('/projects/*')
end
# Inline a svg file.
def svg(name)
File.open("content/assets/images/#{name}.svg", "rb") do |file|
"<div>" + file.read + "</div>"
end
end
end

5
lib/helpers/time.rb Normal file
View file

@ -0,0 +1,5 @@
module TimeHelper
def christmastime?
Time.now.month == 12
end
end

View file

@ -14,3 +14,6 @@ include DataHelper
include FontAwesomeHelper
include ProjectsHelper
include SearchHelper
include BlogHelper
include PreprocessHelper
include TimeHelper

View file

@ -3,7 +3,11 @@ title: Zeus WPI
author_name: ''
author_uri: ''
base_url: https://zeus.ugent.be
base_url: http://localhost:3000
environments:
prod:
base_url: https://zeus.ugent.be
# The syntax to use for patterns in the Rules file. Can be either `"glob"`
# (default) or `"legacy"`. The former will enable glob patterns, which behave

View file

@ -7,6 +7,6 @@
"license": "MIT",
"repository": "https://github.com/ZeusWPI/zeus.ugent.be",
"dependencies": {
"bulma": "^0.2.3"
"bulma": "git://github.com/jgthms/bulma.git#master"
}
}