Merge branch 'master' into revamp-about
This commit is contained in:
commit
bac1448046
18 changed files with 171 additions and 76 deletions
|
@ -31,7 +31,11 @@ For manual deployment, run
|
||||||
bundle exec nanoc deploy --target public
|
bundle exec nanoc deploy --target public
|
||||||
```
|
```
|
||||||
|
|
||||||
## Posts
|
## Events
|
||||||
|
|
||||||
|
Events can be fetched from facebook using `nanoc fetch [facebook event id]`. A file named `.fb_token` containing an app token for facebook must be present.
|
||||||
|
|
||||||
|
## Blogposts
|
||||||
|
|
||||||
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).
|
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).
|
||||||
|
|
||||||
|
|
4
Rules
4
Rules
|
@ -88,6 +88,10 @@ compile '/blog/*/*', rep: :text do
|
||||||
filter :strip_html
|
filter :strip_html
|
||||||
end
|
end
|
||||||
|
|
||||||
|
compile '/blog/*/*', rep: :html do
|
||||||
|
filter :kramdown
|
||||||
|
end
|
||||||
|
|
||||||
#
|
#
|
||||||
# PROJECTS
|
# PROJECTS
|
||||||
#
|
#
|
||||||
|
|
27
commands/fetch.rb
Normal file
27
commands/fetch.rb
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'net/http'
|
||||||
|
require 'json'
|
||||||
|
|
||||||
|
usage 'fetch [facebook event id]'
|
||||||
|
aliases :f
|
||||||
|
summary 'Fetch an event from facebook'
|
||||||
|
description 'Fetch an event from facebook'
|
||||||
|
|
||||||
|
run do |_opts, args, _cmd|
|
||||||
|
fb_token = File.read('.fb_token')
|
||||||
|
uri = URI("https://graph.facebook.com/v2.10/#{args[0]}?fields=cover,name,description,start_time,place,end_time&access_token=#{fb_token}")
|
||||||
|
o = JSON.parse(Net::HTTP.get(uri))
|
||||||
|
|
||||||
|
puts <<~EOS
|
||||||
|
---
|
||||||
|
title: "#{o['name']}"
|
||||||
|
time: #{o['start_time']}
|
||||||
|
location: #{o['place']['name']}
|
||||||
|
end: #{o['end_time']}
|
||||||
|
banner: #{o['cover']['source']}
|
||||||
|
---
|
||||||
|
|
||||||
|
#{o['description']}
|
||||||
|
EOS
|
||||||
|
end
|
|
@ -6,13 +6,6 @@
|
||||||
padding:20px;
|
padding:20px;
|
||||||
padding-top:0px;
|
padding-top:0px;
|
||||||
|
|
||||||
.image-holder {
|
|
||||||
padding: 10px;
|
|
||||||
border: 1px solid lighten(gray, 30%);
|
|
||||||
width: 15%;
|
|
||||||
height: 15%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.image {
|
.image {
|
||||||
vertical-align: baseline;
|
vertical-align: baseline;
|
||||||
border: 1px solid gray;
|
border: 1px solid gray;
|
||||||
|
|
|
@ -16,6 +16,34 @@ a.box {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.event-tile {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 1em;
|
||||||
|
filter: grayscale(30%);
|
||||||
|
|
||||||
|
.event-content {
|
||||||
|
color: #4a4a4a;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
background: rgba($tertiary, 0.2);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
|
||||||
|
.event-text {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 1.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.is-divider {
|
||||||
|
margin: 0.5em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
.centering {
|
.centering {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,6 @@ $orange: $zeus-orange;
|
||||||
$blue: $zeus-blue;
|
$blue: $zeus-blue;
|
||||||
$turquoise: #30D1B2;
|
$turquoise: #30D1B2;
|
||||||
|
|
||||||
$primary: $orange;
|
|
||||||
|
|
||||||
$family-sans-serif: 'Lato', sans-serif;
|
$family-sans-serif: 'Lato', sans-serif;
|
||||||
|
|
||||||
$link-visited: $orange;
|
$link-visited: $orange;
|
||||||
|
@ -30,5 +28,9 @@ $cammie-controls-color: rgba(0, 0, 0, 0.60);
|
||||||
|
|
||||||
$event-padding: 10px;
|
$event-padding: 10px;
|
||||||
|
|
||||||
|
$primary: $orange;
|
||||||
|
$secondary: $zeus-blue;
|
||||||
|
$tertiary: $box-colour;
|
||||||
|
|
||||||
// Default font size
|
// Default font size
|
||||||
// $size-normal: 15px;
|
// $size-normal: 15px;
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
@import "includes/variables";
|
@import "includes/variables";
|
||||||
|
|
||||||
@import "../../../node_modules/bulma/bulma";
|
@import "../../../node_modules/bulma/bulma";
|
||||||
|
@import "../../../node_modules/bulma-divider/divider";
|
||||||
|
|
||||||
.nav-right {
|
.nav-right {
|
||||||
flex: none;
|
flex: none;
|
||||||
|
|
31
content/blog/17-18/tech-talkz.md
Normal file
31
content/blog/17-18/tech-talkz.md
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
---
|
||||||
|
title: 'TeCH Talkz'
|
||||||
|
created_at: 30-09-2017
|
||||||
|
description: CenEka en Zeus WPI organiseren samen een reeks talks waarbij experten komen spreken over 'hot topics' in de technologiewereld.
|
||||||
|
author: Rien
|
||||||
|
---
|
||||||
|
CenEka, een studentenvereniging van de faculteit Ingenieurswetenschappen en Architectuur, organiseert samen met Zeus WPI zes talks doorheen het jaar. Deze talks zullen gaan over wat nieuw en boeiend is in het huidige technologielandschap.
|
||||||
|
|
||||||
|
# Talk I: Nanopixel
|
||||||
|
Datum: 07/11
|
||||||
|
[NanoPixel](https://www.nanopixel.be/nl) een bedrijf met als missie om hun diensten en producten te _revolutioneren_ en een bijzondere meerwaarde te creëren voor hun klanten. Ze komen uitleg geven over de toepassingen en de know-how van **3D Visuals** en in het bijzonder **Virtual Reality**.
|
||||||
|
|
||||||
|
Bekende projecten zijn de vele markups voor vastgoedmakelaars en de **VR Experience** die aangeboden wordt in Technopolis. Voor een voorsmaakje over wat er allemaal mogelijk is met deze technologiën, bekijk dan zeker het filmpje op [deze pagina](https://www.nanopixel.be/nl/projecten/project-detail/9/sterea).
|
||||||
|
|
||||||
|
Misschien vertrek jij wel uit deze presentatie met genoeg informatie en _know-how_ rechtstreeks uit de industrie om zelf onderzoek te doen, of zelfs zelf zo'n _stunning visuals_ te creëeren.
|
||||||
|
|
||||||
|
# Talk II: Internet Freedom
|
||||||
|
Datum: 23/11
|
||||||
|
[Ruben Verborg](https://ruben.verborgh.org) (IDLab) begint met een introductie over het Web en Net Neutrality, een hot topic uit de Verenigde Staten waarvan het debat over heel de wereld werd gevoerd.
|
||||||
|
|
||||||
|
[Julia Reda](https://juliareda.eu/en/) (Europees Parlement) brengt de discussie dichter bij ons thuis en vertelt over de stand van zaken van hervorming van de auteursrechten op Europees niveau. Deze nieuwe wetten hebben een drastische invloed op de vrijheid op het Web binnen de EU.
|
||||||
|
|
||||||
|
# Talk III: Joni Dambre
|
||||||
|
Meer info volgt in 2de semester.
|
||||||
|
|
||||||
|
# Talk IV: Fredo De Smet
|
||||||
|
Meer info volgt in 2de semester.
|
||||||
|
|
||||||
|
# Talk V: Delaware
|
||||||
|
Meer info volgt in 2de semester.
|
||||||
|
|
32
content/events/17-18/geeks-attack-vi.md
Normal file
32
content/events/17-18/geeks-attack-vi.md
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
---
|
||||||
|
title: 'Geeks, Attack! VI'
|
||||||
|
# image: 'https://zeus.ugent.be/zeuswpi/3iUXxjNp.png'
|
||||||
|
banner: 'https://zeus.ugent.be/zeuswpi/bhUOPbV6.png'
|
||||||
|
description: Zeus' zesde LAN-Party
|
||||||
|
created_at: 08-10-2017
|
||||||
|
time: '27-10-2017 16:00'
|
||||||
|
end: '28-10-2017 12:00'
|
||||||
|
location: 'Therminal, Hoveniersberg 24 9000 Gent'
|
||||||
|
locationlink: 'Therminal,Ghent Belgium'
|
||||||
|
facebook: 'https://www.facebook.com/events/1280929475288422/'
|
||||||
|
---
|
||||||
|
|
||||||
|
# Gamers, Assemble!
|
||||||
|
|
||||||
|
Je leest het goed, op **27 oktober 2017** vindt onze zesde editie van onze jaarlijkse LAN-Party plaats in **[Studentenhuis De Therminal](http://student.ugent.be/)** (Hoveniersberg 24, 9000 Gent).
|
||||||
|
|
||||||
|
Vanaf **16:00** kunnen jullie elkaars Nexus vernietigen in League of Legends, een Ancient ten val brengen in Dota 2, bommen ontmantelen in Counter Strike: Global Offensive, op ontzagwekkende snelheden door de maps van Trackmania rijden, en nog veel, veel meer.
|
||||||
|
|
||||||
|
# Geen computer bij?
|
||||||
|
|
||||||
|
Geen zorgen! We voorzien een aantal couch games zoals de Jackbox Party Packs, Nidhogg, Keep Talking and Nobody Explodes, ... Gewoonweg voor de sfeer en de gezelligheid afkomen is dus zeker een optie!
|
||||||
|
|
||||||
|
# Schrijf je in!
|
||||||
|
|
||||||
|
Door je in te schrijven krijgen wij een beter beeld van hoeveel volk we kunnen verwachten, wat we allemaal moeten voorzien, en welke competities we kunnen organiseren. **[Klik hier om je in te schrijven.](https://goo.gl/forms/MRWHUbCrNuHmWK4w2)**
|
||||||
|
|
||||||
|
# Praktisch
|
||||||
|
|
||||||
|
De deuren openen om 16:00\. We vragen €2 inkom, die gebruikt zal worden om de prijzenpot van onze competities aan te dikken. We voorzien ook een aantal runs naar een pizzeria, zodat je zo lang mogelijk aan je scherm gekluisterd kunt zitten. Drank zal ook aanwezig zijn om aan te kopen.
|
||||||
|
|
||||||
|
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.
|
|
@ -1 +1 @@
|
||||||
<%= atom_feed %>
|
<%= atom_feed content_proc: Proc.new {|x| x.reps[:html].compiled_content} %>
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
<div class="box event-preview">
|
|
||||||
<div class="image-holder">
|
|
||||||
<img src="<%= event[:image]%>" alt="" class="image" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="box info">
|
|
||||||
<div class="title">
|
|
||||||
<a href="<%= relative_path_to(event) %>">
|
|
||||||
<%= event[:title] %>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="location">
|
|
||||||
<a href="#">
|
|
||||||
<%= event[:location] %>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div class="description">
|
|
||||||
<%= event[:description] %>
|
|
||||||
</div>
|
|
||||||
<div class="time">
|
|
||||||
<%= event[:time].strftime '%A %d %B %Y %H:%M' %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<% if @main_event %>
|
|
||||||
<div class="box main-event">
|
|
||||||
<p>
|
|
||||||
<%= main_event[:title] %>
|
|
||||||
</p>
|
|
||||||
<ul>
|
|
||||||
<% sub_events(main_event).each do |sub_event| %>
|
|
||||||
<li class="<%= "active" if sub_event[:title] == (event[:title])%>" >
|
|
||||||
<%= sub_event[:title] %>
|
|
||||||
</li>
|
|
||||||
<% end %>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<% end %>
|
|
||||||
</div>
|
|
|
@ -1,32 +1,30 @@
|
||||||
<% if @event[:banner] %>
|
<% if @event[:banner] %>
|
||||||
<a href="<%= @event.path %>" class="tile is-child box backgroundimg highlighted"
|
<a href="<%= @event.path %>" class="tile event-tile is-child box backgroundimg highlighted"
|
||||||
style="background-image:url('<%= @event[:banner] %>');">
|
style="background-image:url('<%= @event[:banner] %>');">
|
||||||
<% elsif @event[:color] %>
|
<% elsif @event[:color] %>
|
||||||
<a href="<%= @event.path %>" class="tile is-child box backgroundimg highlighted"
|
<a href="<%= @event.path %>" class="tile event-tile is-child box backgroundimg highlighted"
|
||||||
style="background-image: linear-gradient(to top right,rgba(255,255,255,0),rgba(0,0,0,.60)); background-color:<%= @event[:color] %>;">
|
style="background-image: linear-gradient(to top right,rgba(255,255,255,0),rgba(0,0,0,.60)); background-color:<%= @event[:color] %>;">
|
||||||
<% else %>
|
<% else %>
|
||||||
<a href="<%= @event.path %>" class="tile is-child box backgroundimg">
|
<a href="<%= @event.path %>" class="tile event-tile is-child box backgroundimg">
|
||||||
<% end %>
|
<% end %>
|
||||||
<div class="content">
|
<div class="content event-content">
|
||||||
<div class="columns">
|
<div class="event-text">
|
||||||
<div class="column">
|
<h1 class="has-text-centered">
|
||||||
<h2>
|
<%= @event[:title] %>
|
||||||
<%= @event[:title] %>
|
</h1>
|
||||||
</h2>
|
|
||||||
|
<div class="description has-text-centered">
|
||||||
|
<%= @event[:description] %>
|
||||||
</div>
|
</div>
|
||||||
<div class="column is-narrow">
|
|
||||||
<small>
|
<div class="is-divider"></div>
|
||||||
<%= @event[:time].strftime('%A %d %B %Y %H:%M') %>
|
|
||||||
<br>
|
<div class="">
|
||||||
<%= @event[:location] %>
|
<%= fa :'clock-o' , fw: true %><%= @event[:time].strftime('%A %d %B, %H:%M') %>
|
||||||
</small>
|
<br>
|
||||||
|
<%= fa :'map-marker', fw: true %><%= @event[:location] %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="description">
|
|
||||||
<%= @event[:description] %>
|
|
||||||
</div>
|
|
||||||
<div class="teaser">
|
|
||||||
<%= get_teaser(@event) %>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
module ArchiveHelper
|
module ArchiveHelper
|
||||||
def academic_years
|
def academic_years
|
||||||
Set.new(items.find_all('/blog/*/*').map { |i| i.identifier.to_s[/\d\d-\d\d/] }).to_a
|
# Set.to_a to prevent duplicates
|
||||||
|
Set.new(items
|
||||||
|
.find_all('/blog/*/*')
|
||||||
|
.map { |i| i.identifier.to_s[/\d\d-\d\d/] })
|
||||||
|
.to_a
|
||||||
|
.sort
|
||||||
end
|
end
|
||||||
|
|
||||||
def academic_years_blog_items
|
def academic_years_blog_items
|
||||||
|
|
|
@ -22,7 +22,7 @@ module EventsHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def academic_years_event_items
|
def academic_years_event_items
|
||||||
items.find_all('/events/*').map { |e| [e[:academic_year], e] }.reverse
|
items.find_all('/events/*').map { |e| [e[:academic_year], e] }.sort_by(&:first)
|
||||||
end
|
end
|
||||||
|
|
||||||
def grouped_events
|
def grouped_events
|
||||||
|
|
|
@ -6,6 +6,7 @@ module FontAwesomeHelper
|
||||||
classes << 'fa-li' if opts[:li]
|
classes << 'fa-li' if opts[:li]
|
||||||
classes << "fa-stack-#{opts[:stack]}" if opts[:stack]
|
classes << "fa-stack-#{opts[:stack]}" if opts[:stack]
|
||||||
classes << 'fa-inverse' if opts[:inverse]
|
classes << 'fa-inverse' if opts[:inverse]
|
||||||
|
classes << 'fa-fw' if opts[:fw]
|
||||||
classes << opts[:class]
|
classes << opts[:class]
|
||||||
|
|
||||||
"<i class='#{classes.reject(&:nil?).join(' ')}'></i>"
|
"<i class='#{classes.reject(&:nil?).join(' ')}'></i>"
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
module PreprocessHelper
|
module PreprocessHelper
|
||||||
def ignore_old_blogposts
|
def ignore_old_blogposts
|
||||||
@items.delete_if do |item|
|
@items.delete_if do |item|
|
||||||
next unless item.identifier.to_s.start_with?('/blog/')
|
path = item.identifier.to_s
|
||||||
!item.identifier.to_s.start_with?('/blog/16-17/')
|
next unless path.start_with?('/blog/')
|
||||||
|
year = path.gsub(%r{/blog/(\d\d)-\d\d/.*}, '\1').to_i
|
||||||
|
year < 16
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
5
package-lock.json
generated
5
package-lock.json
generated
|
@ -8,6 +8,11 @@
|
||||||
"version": "0.5.1",
|
"version": "0.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/bulma/-/bulma-0.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/bulma/-/bulma-0.5.1.tgz",
|
||||||
"integrity": "sha1-2ygxyUr+cyJQx7ElJ6e3kqTcnvg="
|
"integrity": "sha1-2ygxyUr+cyJQx7ElJ6e3kqTcnvg="
|
||||||
|
},
|
||||||
|
"bulma-divider": {
|
||||||
|
"version": "0.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/bulma-divider/-/bulma-divider-0.0.1.tgz",
|
||||||
|
"integrity": "sha1-qcW1TwzgKg6FjTOPTlggN4dRKks="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"repository": "https://github.com/ZeusWPI/zeus.ugent.be",
|
"repository": "https://github.com/ZeusWPI/zeus.ugent.be",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bulma": "0.5.1"
|
"bulma": "0.5.1",
|
||||||
|
"bulma-divider": "~0.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue