aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--contrib/jekyll/README.md38
-rw-r--r--contrib/jekyll/rss.rb35
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)