From f4b7a799b03c564e656e5907d9696e2646d50e40 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Fri, 25 Aug 2017 00:57:58 +0200 Subject: [PATCH] blog section --- Gemfile | 4 ++- _src/_assets/scss/page-front.scss | 24 +++++++++++++++++- _src/_plugins/blog.rb | 41 +++++++++++++++++++++++++++++++ _src/index.html | 11 +++++++++ 4 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 _src/_plugins/blog.rb diff --git a/Gemfile b/Gemfile index 4d9de1f..4730069 100644 --- a/Gemfile +++ b/Gemfile @@ -5,4 +5,6 @@ gem 'jekyll' group :jekyll_plugins do gem 'jekyll-sitemap' gem 'jekyll-redirect-from' -end \ No newline at end of file + gem 'hash-joiner' + gem 'simple-rss' +end diff --git a/_src/_assets/scss/page-front.scss b/_src/_assets/scss/page-front.scss index b97327c..17a4bb0 100644 --- a/_src/_assets/scss/page-front.scss +++ b/_src/_assets/scss/page-front.scss @@ -43,5 +43,27 @@ .connect__title { font-size: $font-size-h3; - margin-bottom: $spacer / 2; +} + +.articles { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + max-width: 100%; +} + +.article { + @media ($screen-sm) { + flex: 0 0 45%; + } + + img { + max-width: 100%; + height: auto; + } +} + +.article__title { + font-size: $font-size-h6; + margin-top: 0; } diff --git a/_src/_plugins/blog.rb b/_src/_plugins/blog.rb new file mode 100644 index 0000000..fe37e43 --- /dev/null +++ b/_src/_plugins/blog.rb @@ -0,0 +1,41 @@ +# http://stackoverflow.com/a/27850727/733677 +# encoding: UTF-8 +require 'open-uri' +require 'rss' +require 'simple-rss' + +module Jekyll + + # Runs during jekyll build + class RssFeedCollector < Generator + safe true + priority :high + def generate(site) + + rss_items = SimpleRSS.parse open('https://medium.com/feed/ipdb-blog/') + + # Create a new on-the-fly Jekyll collection called "articles" + jekyll_items = Jekyll::Collection.new(site, 'articles') + site.collections['articles'] = jekyll_items + + # Add fake virtual documents to the collection + rss_items.items.each do |item| + title = item.title + link = item.link + + # Medium hack: get first image in content, then get smaller image size + image = item.content_encoded[/img.*?src="(.*?)"/i,1].gsub(/max\/(.*)\//, "max/400/") + + path = '_articles/' + title.to_s.gsub(':','_') + '.md' + path = site.in_source_dir(path) + doc = Jekyll::Document.new(path, site: site, collection: jekyll_items) + doc.data['title'] = title.force_encoding('UTF-8') + doc.data['link'] = link + doc.data['image'] = image + jekyll_items.docs << doc + end + + end + end + +end diff --git a/_src/index.html b/_src/index.html index 9fb5887..bc5e9b2 100644 --- a/_src/index.html +++ b/_src/index.html @@ -1,5 +1,6 @@ --- layout: base + front_page: true css: page-front @@ -134,6 +135,16 @@ css: page-front

{{ content.connect.blog_title }}

+ +
+ {% for article in site.articles | limit: 4 %} + + +

{{ article.title }}

+
+ {% endfor %} +
+ IPDB Blog