利用Jekyll自动生成可订阅的RSS文件

Nov 27,2020   2316 words   9 min

Tags: Others

在之前的这篇博客里有提到过免费的RSS服务网站,但其实后来用着用着也就不好用了。所以后来网站也就取消了RSS订阅的功能。最近发现我们可以利用Jekyll,按照RSS Xml文件的格式自动生成RSS订阅文件。这样也是十分方便的。这样的话在每次Github push新内容的时候,这个RSS订阅文件都会被Jekyll重新生成一遍,保证是最新的。用户只要订阅了这个文件,当他在RSS订阅软件里刷新的时候,就可以看到我们发布的新内容了。之前RSS订阅网站的功能是定期检测网站是否有更新,如果有的话就更新RSS订阅文件,由于需要消耗服务器资源,所以免费的很少。但是现在想想,其实对于我们这种静态博客而言,除非是我们自己push内容上去,否则一般也不会有更新。因此,这种push一次自动更新一下RSS文件的方法是可以接受的,而不需要定期检测是否有更新。这篇博客主要就是对如何利用Jekyll自动生成RSS订阅文件进行介绍。

1.修改_config.xml文件

首先检查一下你网站的_config.xml文件里有没有如下的字段信息,如果没有的话记得添加一下,有的话可以跳过这一步。这些字段内容在RSS订阅文件里会用到。

name:	your blog name
description:	Description of your blog
url:	link of your blog

2.创建RSS订阅文件

在网站的根目录下创建一个feed.xml(名字可以随便起,方便使用就行),然后在其中写入如下内容。注意,复制一下内容以后记得把<<>>换成Liquid语言中的两个花括号。$换成百分号%就可以了。 之所以这么麻烦,不在这里直接贴原始代码的原因是,在Jekyll生成的时候,如果这里是原始代码,会在这里也自动生成个RSS订阅内容,这显然是不对的。所以只好换个表示方法了。

---
layout: none
---

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
	<title><< site.name >></title>
		<description><< site.description >></description>
		<link><< site.baseurl >><< site.url >></link>
		<atom:link href="<< site.baseurl >><< site.url >>/feed.xml" rel="self" type="application/rss+xml" />
		{$ for post in site.posts limit:10 $}
			<item>
				<title><< post.title >></title>
				<description><< post.content | xml_escape >></description>
				<pubDate><< post.date | date: "%a, %d %b %Y %H:%M:%S %z" >></pubDate>
				<link><< site.url >><< site.baseurl>><< post.url >></link>
				<guid isPermaLink="true"><< site.url >><< site.baseurl >><< post.url >></guid>
			</item>
		{$ endfor $}
	</channel>
</rss>

保存即可。而对于用户,你的RSS订阅文件的地址就是your blog url/feed.xml,比如我的是zhaoxuhui.top/feed.xml。可以在网站中放个链接,指向这个RSS订阅文件即可,比如在我的博客中,我把它放到了MENU菜单里,如下。至此,添加的工作就大功告成了。后续只要我们push,这个文件就会自动生成一遍。

3.测试

这里我们以Android手机为例,打开软件以后,首先按照RSS订阅文件地址添加订阅源。 然后,就可以在订阅列表里看到订阅内容了,如下所示。整体效果看起来还不错。 打开一个文章,就可以进行简单阅读了,点击右上角还可以跳转到原始网址。 这样,便完成了对于博客RSS订阅源的配置。

4.参考资料

  • [1] https://blog.csdn.net/itmyhome1990/article/details/42919429
  • [2] https://blog.tankywoo.com/blog/2014/05/04/add-rss-to-jekyll.html
  • [3] https://blog.mambaxin.com/article/35

本文作者原创,未经许可不得转载,谢谢配合

返回顶部