Ghost 博客自定义 RSS

Ghost 博客自定义 RSS

May 26, 2023
分享 ,

在如今的年代信息的获取已经不能再简单了,各大公司得益于算法、用户画像共享,可以在用户完全不知情的情况下给用户推送信息、广告,但是又因为营销号这种东西存在,导致推送给用户的所谓信息大部分几乎都是无效的。

所以在碎片化信息如此肆意增长的时代依旧还有人用 RSS(Really Simple Syndication)来作为自己的信息获取渠道,我通过 GPT 总结了一下这种信息获取方式的优缺点,并做了一些自己理解

优点

  • 方便快捷:RSS 可以将多个网站的内容汇总到一个统一的阅读器中,让用户无需逐个访问网站,节省时间和精力。
  • 定制化:用户可以订阅自己感兴趣的内容源,只接收特定领域或感兴趣的信息,避免信息过载。
  • 阅读体验好:RSS 阅读器通常提供简洁、干净的阅读界面,让用户专注于阅读内容。
  • 隐私保护:RSS 阅读器不需要用户提供个人信息,避免了隐私泄露的风险。

缺点

  • 信息过滤不足:RSS 订阅的源可能包含垃圾信息或媒体推销,需要用户手动过滤。
  • 部分网站不支持:虽然 RSS 已经普及,但仍有一些网站不支持 RSS,无法使用这种方式获取信息。
  • 信息更新不及时:由于 RSS 的更新频率与源网站有关,有些网站可能不会及时更新 RSS,导致信息更新不及时。

补充

  • 目标网站会损失流量
  • 国内 RSS 环境不太好,大公司都是思域闭环,甚至各种屏蔽外部链接。

总体来说,使用 RSS 获取信息的好处远大于坏处,特别是对于需要定期获取大量信息的人来说,RSS 可以帮助他们更高效简洁的地获取信息。


前些日子被个站商店的管理小彦告知我的博客 RSS 订阅似乎有点问题,有标题,但所有的内容都是乱码,如下图:

经过测试发现可能是 Ghost 使用的 XML 版本为 2.0 有关系,换成 1.0 后可以正常显示。

定制步骤

根据官方提供的定制教程我们可以通过新建模板重写 RSS 页面。

  1. 在主题根目录新建 rss.hbs 文件,并设置编码模式为 UTF-8 ,version 版本为 1.0
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="1.0">
    <channel>
        <title>
            <![CDATA[ {{@site.title}} ]]>
        </title>
        <description>
            <![CDATA[ {{@site.description}} ]]>
        </description>
        <link>{{@site.url}}</link>
        <image>
            <url>{{@site.url}}/favicon.png</url>
            <title>{{@site.title}}</title>
            <link>{{@site.url}}</link>
        </image>
        <lastBuildDate>{{date format="ddd, DD MMM YYYY HH:mm:ss ZZ"}}</lastBuildDate>
        <atom:link href="{{@site.url}}" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>

        {{#get "posts" limit="all" include="authors,tags"}}
        {{#foreach posts}}
        <item>
            <title>
                <![CDATA[ {{title}} ]]>
            </title>
            <description>
                <![CDATA[ {{excerpt}} ]]>
            </description>
            <link>{{url absolute="true"}}</link>
            <guid isPermaLink="false">{{id}}</guid>
            <category>
                <![CDATA[ {{primary_tag.name}} ]]>
            </category>
            <dc:creator>
                <![CDATA[ {{primary_author.name}} ]]>
            </dc:creator>
            <pubDate>{{date format="ddd, DD MMM YYYY HH:mm:ss ZZ"}}</pubDate>
            <media:content url="{{feature_image}}" medium="image" />
            <content:encoded>
                <![CDATA[ {{content}} ]]>
            </content:encoded>
        </item>
        {{/foreach}}
        {{/get}}

    </channel>
</rss>

2. 登录后台,进入 Labs 设置,下载 Routes.yaml 文件,并对其中的 Routes 进行以下修改

routes:
  /rss/:
    template: rss
    content_type: text/xml

3. 上传修改好的 yaml 文件和重新打包的主题文件。

4. 刷新 rss 页面看效果。

加入评论