在Github上使用OsmosFeed搭建在线RSS阅读器(无需服务器)

前言

在搭建云野阁博客网站期间,看了好多具有个人特色的博客网站,有不少都有RSS订阅功能,那RSS是什么呢?咱们先唠唠。

🔜RSS🔚

RSS 全称 Really Simple Syndication(真正简易联合),是一种基于XML(可扩展标记语言)的内容分发协议,它允许用户订阅网站的内容更新,如新闻、博客文章等。好像还有另外的说法是Rich Site Summary(网站内容摘要)和 RDF Site Summary(资源描述框架站点摘要),不过其实都描述的是从订阅源获取更新的内容,并将获取的内容整合集中显示,方便用户进行查看。

网上有关RSS的相关介绍有很多,感兴趣的话可以搜索了解下。

订阅了RSS,只要再结合RSS阅读器,就可以直接看到有关博客的最新文章,那我们就重点搞RSS阅读器。RSS阅读器无论是自建还是使用现成的,都有很多类型,像浏览器插件、手机端、电脑端程序、web端等。搭建一个web端,方便、省事、对终端依赖小。

OsmosFeed是GitHub上一个开源的Web版RSS阅读器,可以使用 GitHub Pages托管,利用GitHub Actions实现内容定期自动更新,主题可自定义。

本站的文界就是使用OsmosFeed搭建并托管在GitHub Pages上的。点我跳转查看

搭建过程

创建仓库

1.访问OsmosFeed仓库的配置教程,点击教程中”创建新仓库“中的第一步”使用osmosfeed-template官方模板创建仓库“,页面跳转至创建新仓库界面,设置仓库名并将可见性设为Public,点击创建Create repository按钮新建仓库。

2.进入刚创建好的仓库,进入目录.github/workflows,修改update-feed.yaml文件为以下内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
name: Build site on schedule or main branch update

on:
push:
branches:
- main
schedule:
# Adjust refresh schedule here. By default, it runs once per day.
# Syntax reference: https://docs.github.com/en/actions/reference/events-that-trigger-workflows#schedule
# Recommended tool: https://crontab.guru/
- cron: "0 11 * * *" #设置的执行时间周期

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v4.0.3
with:
node-version: "20"
- name: Install dependencies
run: npm i
- name: Build the feed
run: npm run build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.action_token }} #action_token为设置的Actions secrets ,后面会讲到
publish_dir: ./public

3.进入刚创建好的仓库,修改根目录下的osmosfeed.yaml文件,将cacheUrl:行前的#去除,并将GITHUB_USERNAME修改为自己的github名称,REPO_NAME修改为本仓库的名。sources下的- href:为RSS/Atom源。

1
2
3
4
5
cacheUrl: https://GITHUB_USERNAME.github.io/REPO_NAME/cache.json
sources:
- href: https://css-tricks.com/feed/
- href: https://www.freecodecamp.org/news/rss/
- href: https://daverupert.com/atom.xml

设置身份验证令牌

1.点击自己的头像,选择 “Settings” -> “Developer settings” -> “Personal access tokens”->”Tokens(classic)“,点击 “Generate new token”,选择”Generate new token(classic)“,验证后,指定一个描述性名称,选择令牌的有效时间,选择要授予此令牌的范围或权限。只需要选择repo一项即可。点击”Generate token“,完成创建。

2.创建完成后,复制保存token,后面要用。

3.进入刚创建好的仓库,进入仓库的“Settings” -> “Secrets and variables” -> “Actions”。点击”Repository secrets“中的“New repository secret”,输入Actions secrets 的名字为action_token(与update-feed.yaml文件中的保持一致),并将第2步复制的token粘贴至Secrets框中,点击”Add secret“保存。

部署GitHub Pages

1.进入仓库的“Settings” -> “Pages” ,在Branch中选择”gh-pages“,目录选择”/(root)“,点击”save“保存。

  1. 刷新页面,直到界面上出现 Your site is published at https://github用户名.github.io/仓库名的确认信息(最多等待1-3分钟)即可离开。完成部署。部署的详细过程可以进入仓库的”Actions”,进行查看具体过程与异常情况。