无需插件为 Jekyll 创建 RSS feed

 2014-03-30    曼谷 /others/2014/03/30/rss.html others nil

本文最近更新于 2017 年 10 月 09 日

本文方法源自 jekyll-rss-feeds

2015/04/07 - 更新 feed.xml(详情见 这里);修正 feedburner 超过 1024K 问题。#Moscow

_config.yml 中添加站点信息

name: Your Blog's Name
description: A description for your blog
url: https://your-blog-url.example.com

这些值将会作为网站信息用于你的 feed 中,作为“奖赏”,以后你也可以在你的 Jekyll 模板 中使用 site.name, site.descriptionsite.url 来调用这些变量值。

为你的网站添加 feed.xml

jekyll-rss-feeds 提供了几种 feeds 可供使用,详见 https://github.com/snaptortoise/jekyll-rss-feeds

这里我们使用一种常用形式,即调用最新的 20 篇文章。所使用的 feed.xml 代码如下(feed.xml 放置在网站根目录下):

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

当然,你也可以自定义最新文章的数量,只需更改 for post in site.posts limit:20 中的 20 为你想要的数字即可。

创建,提交!

执行 jekyll serve 生成你的站点然后 push 到你的服务器!如果你在使用 GitHub Pages,那就直接 git push 吧!

最后,顺手在网站的 <head> 中添加上 feed 的 <link> 吧!

<link href='https://jsntn.com/feed.xml' rel='alternate' type='application/atom+xml'>

DONE!

https://joelglovier.com/writing/rss-for-jekyll/
https://kmikael.com/2013/05/23/adding-an-rss-feed-to-a-jekyll-site/

关于作者
Jason,80 后,现从事通信行业。安卓玩家一个人的书房朗读者麦子
 英语入门到放弃
 jsntn
 jasonwtien
 jasonwtien
更多…… /about.html

最近更新: