Ghost博客自定义RSS
2023-05-26
在如今的年代信息的获取已经不能再简单了,各大公司得益于算法、用户画像共享,可以在用户完全不知情的情况下给用户推送信息、广告,但是又因为营销号这种东西存在,导致推送给用户的所谓信息大部分几乎都是无效的。
所以在碎片化信息如此肆意增长的时代依旧还有人用RSS(Really Simple Syndication)来作为自己的信息获取渠道,我通过GPT总结了一下这种信息获取方式的优缺点,并做了一些自己理解
优点
- 方便快捷:RSS 可以将多个网站的内容汇总到一个统一的阅读器中,让用户无需逐个访问网站,节省时间和精力。
- 定制化:用户可以订阅自己感兴趣的内容源,只接收特定领域或感兴趣的信息,避免信息过载。
- 阅读体验好:RSS 阅读器通常提供简洁、干净的阅读界面,让用户专注于阅读内容。
- 隐私保护:RSS 阅读器不需要用户提供个人信息,避免了隐私泄露的风险。
缺点
- 信息过滤不足:RSS 订阅的源可能包含垃圾信息或媒体推销,需要用户手动过滤。
- 部分网站不支持:虽然 RSS 已经普及,但仍有一些网站不支持 RSS,无法使用这种方式获取信息。
- 信息更新不及时:由于 RSS 的更新频率与源网站有关,有些网站可能不会及时更新 RSS,导致信息更新不及时。
补充
- 目标网站会损失流量
- 国内RSS环境不太好,大公司都是思域闭环,甚至各种屏蔽外部链接。
总体来说,使用 RSS 获取信息的好处远大于坏处,特别是对于需要定期获取大量信息的人来说,RSS 可以帮助他们更高效简洁的地获取信息。
前些日子被个站商店的管理小彦告知我的博客RSS订阅似乎有点问题,有标题,但所有的内容都是乱码,如下图:
经过测试发现可能是Ghost使用的XML版本为2.0有关系,换成1.0后可以正常显示。
定制步骤
根据官方提供的定制教程我们可以通过新建模板重写RSS页面。
- 在主题根目录新建
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页面看效果。
加入评论