diff --git a/Gemfile b/Gemfile index b25d8dd..3075f3e 100644 --- a/Gemfile +++ b/Gemfile @@ -17,10 +17,12 @@ gem 'words_counted', git: 'https://github.com/werthen/words_counted' group :development do gem 'adsf' - gem 'thin' + # 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 diff --git a/Gemfile.lock b/Gemfile.lock index 3d27be4..4d3b9e9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,20 +11,28 @@ GEM public_suffix (>= 2.0.2, < 5.0) adsf (1.4.5) rack (>= 1.0.0, < 3.0.0) - autoprefixer-rails (10.1.0.0) + 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) + concurrent-ruby (1.1.8) cri (2.15.11) - daemons (1.3.1) ddmemoize (1.0.0) ddmetrics (~> 1.0) ref (~> 2.0) ddmetrics (1.0.1) ddplugin (1.0.3) diff-lcs (1.4.4) + 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.14.2) @@ -48,6 +56,7 @@ GEM concurrent-ruby (~> 1.0) highline (2.0.3) htmlcompressor (0.4.0) + http_parser.rb (0.6.0) icalendar (2.7.0) ice_cube (~> 0.16) ice_cube (0.16.3) @@ -56,7 +65,7 @@ GEM kramdown (2.3.0) rexml libv8 (8.4.255.0) - listen (3.4.0) + listen (3.4.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) lumberjack (1.2.8) @@ -64,12 +73,12 @@ GEM mini_portile2 (2.5.0) mini_racer (0.3.1) libv8 (~> 8.4.255) - nanoc (4.11.22) + nanoc (4.12.0) addressable (~> 2.5) colored (~> 1.2) nanoc-checking (~> 1.0) - nanoc-cli (= 4.11.22) - nanoc-core (= 4.11.22) + nanoc-cli (= 4.12.0) + nanoc-core (= 4.12.0) nanoc-deploying (~> 1.0) parallel (~> 1.12) tty-command (~> 0.8) @@ -77,12 +86,12 @@ GEM nanoc-checking (1.0.1) nanoc-cli (~> 4.11, >= 4.11.15) nanoc-core (~> 4.11, >= 4.11.15) - nanoc-cli (4.11.22) + nanoc-cli (4.12.0) cri (~> 2.15) diff-lcs (~> 1.3) - nanoc-core (= 4.11.22) + nanoc-core (= 4.12.0) zeitwerk (~> 2.1) - nanoc-core (4.11.22) + nanoc-core (4.12.0) concurrent-ruby (~> 1.1) ddmemoize (~> 1.0) ddmetrics (~> 1.0) @@ -97,8 +106,14 @@ GEM 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.11.0) + nio4r (2.5.5) + nokogiri (1.11.1) mini_portile2 (~> 2.5.0) racc (~> 1.4) notiffany (0.1.3) @@ -108,12 +123,16 @@ GEM 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.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) @@ -127,14 +146,10 @@ GEM slow_enumerator_tools (1.1.0) terminal-notifier (2.0.0) terminal-notifier-guard (1.7.0) - thin (1.8.0) - daemons (~> 1.0, >= 1.0.9) - eventmachine (~> 1.0, >= 1.0.4) - rack (>= 1, < 3) - thor (1.0.1) + thor (1.1.0) tomlrb (1.3.0) tty-color (0.6.0) - tty-command (0.10.0) + tty-command (0.10.1) pastel (~> 0.8) tty-platform (0.3.0) tty-which (0.4.2) @@ -163,12 +178,13 @@ DEPENDENCIES kramdown mini_racer nanoc + nanoc-live pandoc-ruby + puma rainpress sassc terminal-notifier terminal-notifier-guard - thin typogruby uglifier (>= 4.0.0) w3c_validators diff --git a/Rules b/Rules index 48cf4e9..902e038 100644 --- a/Rules +++ b/Rules @@ -197,10 +197,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'] 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/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/layouts/blogs.erb b/layouts/blogs.erb index 78bcea3..981c222 100644 --- a/layouts/blogs.erb +++ b/layouts/blogs.erb @@ -42,13 +42,7 @@
- <% posts_in_year_or_with_tag(item).each_with_index.select {|e, i| i.even?}.map(&:first).each do |post| %> - <%= render '/partials/_blog_preview.*', post: post %> - <% end %> -
- -
- <% posts_in_year_or_with_tag(item).each_with_index.reject {|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 %>
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..f527644 100644 --- a/layouts/partials/_events_tile.erb +++ b/layouts/partials/_events_tile.erb @@ -12,9 +12,9 @@ <% end %>
-

+

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

+
<%= @event[:description] %> diff --git a/lib/helpers/events.rb b/lib/helpers/events.rb index 198d1b7..14aadf4 100644 --- a/lib/helpers/events.rb +++ b/lib/helpers/events.rb @@ -65,8 +65,8 @@ module EventsHelper @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)