我有几个网站,并希望通过RSS显示内容,如Jekyll项目中的头条新闻。是否可以用jekyll解析外部rss feed并使用它们?
答案 0 :(得分:4)
是。您要么想要在jekyll build
期间创建一个用于获取和解析外部供稿的插件,要么计划B,您可以随时使用AJAX获取和解析供稿客户端。既然你要求一个Jekyll答案,这里是对前一种方法的粗略近似:
# Runs during jekyll build
class RssFeedCollector < Generator
safe true
priority :high
def generate(site)
# TODO: Insert code here to fetch RSS feeds
rss_item_coll = null;
# Create a new on-the-fly Jekyll collection called "external_feed"
jekyll_coll = Jekyll::Collection.new(site, 'external_feed')
site.collections['external_feed'] = jekyll_coll
# Add fake virtual documents to the collection
rss_item_coll.each do |item|
title = item[:title]
content = item[:content]
guid = item[:guid]
path = "_rss/" + guid + ".md"
path = site.in_source_dir(path)
doc = Jekyll::Document.new(path, { :site => site, :collection => jekyll_coll })
doc.data['title'] = title;
doc.data['feed_content'] = content;
jekyll_coll.docs << doc
end
end
end
然后,您可以在模板中访问该集合,如下所示:
{% for item in site.collections['external_feed'].docs %}
<h2>{{ item.title }}</h2>
<p>{{ item.feed_content }}</p>
{% endfor %}
主题有很多可能的变化,但这就是主意。
答案 1 :(得分:-1)
好吧,我不认为Jekyll本身可以做到这一点......因为Jekyll更像是CMS。但是,Jekyll是用Ruby编写的,我相信你可以轻松地用Jekyll运行ruby / rake任务(甚至可能是你在构建一个Jekyll站点时使用的),所以我相信你应该把它作为一个ruby脚本。