From 5ff8ffdb0f1ec733d8e3e663f6aef0f8d3dbc424 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sun, 17 May 2015 21:10:15 +0200 Subject: Add plugin for fetching feeds from Jekyll. --- contrib/jekyll/README.md | 38 ++++++++++++++++++++++++++++++++++++++ contrib/jekyll/rss.rb | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 contrib/jekyll/README.md create mode 100644 contrib/jekyll/rss.rb diff --git a/contrib/jekyll/README.md b/contrib/jekyll/README.md new file mode 100644 index 0000000..c472c19 --- /dev/null +++ b/contrib/jekyll/README.md @@ -0,0 +1,38 @@ +Plugin to read RSS streams in Jekyll +==================================== + +Copy the file `rss.rb` to the `_plugin` directory of your blog. If there's no +plugin directory, you may have to create it. + +Add a file called feeds.yml to your `_data` directory, it should look similar to +this: + + my_feed: + title: My Feed + url: http://example.com/feed + limit: 20 + +Then use like this from any liquid template: + + {% rss my_feed %} + +This fetches the 20 latest posts from the feed identified by `my_feed`, and +inserts it into your template. + +License: +-------- + +Copyright (C) 2015 Harald Eilertsen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . diff --git a/contrib/jekyll/rss.rb b/contrib/jekyll/rss.rb new file mode 100644 index 0000000..573a089 --- /dev/null +++ b/contrib/jekyll/rss.rb @@ -0,0 +1,35 @@ +# RSS plugin for Jekyll +# Copyright (C) 2015 Harald Eilertsen +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +require 'rss2html' + +module Jekyll + module Tags + class Rss < Liquid::Tag + def initialize(tag_name, args, tokens) + super tag_name, args, tokens + @feed = Jekyll.sites[0].site_data['feeds'][args.strip] + end + + def render(context) + f = Rss2Html::Feed.new(@feed) + f.render + end + end + end +end + +Liquid::Template.register_tag('rss', Jekyll::Tags::Rss) -- cgit v1.2.3