diff --git a/README.md b/README.md index edf4c9d..214bdd1 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,11 @@ For manual deployment, run 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). diff --git a/Rules b/Rules index c9303b6..b5f3fb4 100644 --- a/Rules +++ b/Rules @@ -88,6 +88,10 @@ compile '/blog/*/*', rep: :text do filter :strip_html end +compile '/blog/*/*', rep: :html do + filter :kramdown +end + # # PROJECTS # diff --git a/commands/fetch.rb b/commands/fetch.rb new file mode 100644 index 0000000..b63a3d2 --- /dev/null +++ b/commands/fetch.rb @@ -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 diff --git a/content/assets/stylesheets/includes/events.scss b/content/assets/stylesheets/includes/events.scss index b49f710..2486bad 100644 --- a/content/assets/stylesheets/includes/events.scss +++ b/content/assets/stylesheets/includes/events.scss @@ -6,13 +6,6 @@ padding:20px; padding-top:0px; - .image-holder { - padding: 10px; - border: 1px solid lighten(gray, 30%); - width: 15%; - height: 15%; - } - .image { vertical-align: baseline; border: 1px solid gray; diff --git a/content/assets/stylesheets/includes/tiles.scss b/content/assets/stylesheets/includes/tiles.scss index 4a680ad..1ff4c7f 100644 --- a/content/assets/stylesheets/includes/tiles.scss +++ b/content/assets/stylesheets/includes/tiles.scss @@ -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 { display: flex; diff --git a/content/assets/stylesheets/includes/variables.scss b/content/assets/stylesheets/includes/variables.scss index a049593..1f4f90a 100644 --- a/content/assets/stylesheets/includes/variables.scss +++ b/content/assets/stylesheets/includes/variables.scss @@ -13,8 +13,6 @@ $orange: $zeus-orange; $blue: $zeus-blue; $turquoise: #30D1B2; -$primary: $orange; - $family-sans-serif: 'Lato', sans-serif; $link-visited: $orange; @@ -30,5 +28,9 @@ $cammie-controls-color: rgba(0, 0, 0, 0.60); $event-padding: 10px; +$primary: $orange; +$secondary: $zeus-blue; +$tertiary: $box-colour; + // Default font size // $size-normal: 15px; diff --git a/content/assets/stylesheets/main.scss b/content/assets/stylesheets/main.scss index 0dfe242..6b5b8f2 100644 --- a/content/assets/stylesheets/main.scss +++ b/content/assets/stylesheets/main.scss @@ -3,6 +3,7 @@ @import "includes/variables"; @import "../../../node_modules/bulma/bulma"; +@import "../../../node_modules/bulma-divider/divider"; .nav-right { flex: none; diff --git a/content/blog/17-18/tech-talkz.md b/content/blog/17-18/tech-talkz.md new file mode 100644 index 0000000..d51b4f4 --- /dev/null +++ b/content/blog/17-18/tech-talkz.md @@ -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. + diff --git a/content/events/17-18/geeks-attack-vi.md b/content/events/17-18/geeks-attack-vi.md new file mode 100644 index 0000000..e3d975e --- /dev/null +++ b/content/events/17-18/geeks-attack-vi.md @@ -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. diff --git a/content/feed.xml b/content/feed.xml index acc0a7c..a7aa5da 100644 --- a/content/feed.xml +++ b/content/feed.xml @@ -1 +1 @@ -<%= atom_feed %> +<%= atom_feed content_proc: Proc.new {|x| x.reps[:html].compiled_content} %> diff --git a/layouts/partials/_event_preview.erb b/layouts/partials/_event_preview.erb deleted file mode 100644 index 9878855..0000000 --- a/layouts/partials/_event_preview.erb +++ /dev/null @@ -1,39 +0,0 @@ -
-
- -
- -
- - -
- <%= event[:description] %> -
-
- <%= event[:time].strftime '%A %d %B %Y %H:%M' %> -
-
- - <% if @main_event %> -
-

- <%= main_event[:title] %> -

- -
- <% end %> -
diff --git a/layouts/partials/_events_tile.erb b/layouts/partials/_events_tile.erb index e19d22c..42d6b11 100644 --- a/layouts/partials/_events_tile.erb +++ b/layouts/partials/_events_tile.erb @@ -1,32 +1,30 @@ <% if @event[:banner] %> - <% elsif @event[:color] %> - <% else %> - + <% end %> -
-
-
-

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

+
+
+

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

+ +
+ <%= @event[:description] %>
-
- - <%= @event[:time].strftime('%A %d %B %Y %H:%M') %> -
- <%= @event[:location] %> -
+ +
+ +
+ <%= fa :'clock-o' , fw: true %><%= @event[:time].strftime('%A %d %B, %H:%M') %> +
+ <%= fa :'map-marker', fw: true %><%= @event[:location] %>
-
- <%= @event[:description] %> -
-
- <%= get_teaser(@event) %> -
+
diff --git a/lib/helpers/archives.rb b/lib/helpers/archives.rb index 71f1a7c..5c15ccc 100644 --- a/lib/helpers/archives.rb +++ b/lib/helpers/archives.rb @@ -1,6 +1,11 @@ module ArchiveHelper 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 def academic_years_blog_items diff --git a/lib/helpers/events.rb b/lib/helpers/events.rb index 0399390..4872a7c 100644 --- a/lib/helpers/events.rb +++ b/lib/helpers/events.rb @@ -22,7 +22,7 @@ module EventsHelper end 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 def grouped_events diff --git a/lib/helpers/font_awesome.rb b/lib/helpers/font_awesome.rb index 293b304..563e408 100644 --- a/lib/helpers/font_awesome.rb +++ b/lib/helpers/font_awesome.rb @@ -6,6 +6,7 @@ module FontAwesomeHelper classes << 'fa-li' if opts[:li] classes << "fa-stack-#{opts[:stack]}" if opts[:stack] classes << 'fa-inverse' if opts[:inverse] + classes << 'fa-fw' if opts[:fw] classes << opts[:class] "" diff --git a/lib/helpers/preprocess.rb b/lib/helpers/preprocess.rb index b60eabe..a8e5c96 100644 --- a/lib/helpers/preprocess.rb +++ b/lib/helpers/preprocess.rb @@ -1,8 +1,10 @@ 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/') + path = item.identifier.to_s + next unless path.start_with?('/blog/') + year = path.gsub(%r{/blog/(\d\d)-\d\d/.*}, '\1').to_i + year < 16 end end diff --git a/package-lock.json b/package-lock.json index 880b372..eb81606 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,11 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/bulma/-/bulma-0.5.1.tgz", "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=" } } } diff --git a/package.json b/package.json index 8e2af6e..6f8370f 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "license": "MIT", "repository": "https://github.com/ZeusWPI/zeus.ugent.be", "dependencies": { - "bulma": "0.5.1" + "bulma": "0.5.1", + "bulma-divider": "~0.0.1" } }