diff options
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/jekyll/README.md | 38 | ||||
-rw-r--r-- | contrib/jekyll/rss.rb | 35 |
2 files changed, 73 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>. 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 <http://www.gnu.org/licenses/>. + +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) |