RssWe--支持PWA的RSS和播客在线阅读器
前言
RssWe 的诞生,源于我对rssTea的真实体验。在订阅播客时,时常遇到音频无法加载或显示的窘境;并且,随着订阅源日益增多,列表变得杂乱无章,难以快速定位。当文章列表过长时,想返回顶部或直接查看特定播客内容也变得异常繁琐。
想着解决这些不便,我决定自己动手解决。RssWe 由此诞生。
RssWe是一个无需服务器的RSS和播客阅读器,支持PWA,使用GitHub Actions运行。
一个高效、轻量的RSS/Atom 聚合器,并行抓取、解析和聚合多个RSS/Atom订阅源。它支持并行抓取、分类管理、内容展示、播客收听,并能生成独立的 HTML 和 JSON 文件,方便部署和使用。
功能概览
点我预览--->🔜PC端主题🔚
顶栏模式和侧栏模式在手机端的主题样式一致
点我预览--->🔜手机端主题🔚
点我预览--->🔜播客样式和返回顶部-PC端🔚
点我预览--->🔜播客的样式和返回顶部-手机端🔚
展示页面
主要功能
本项目基于avadhesh18/rssTea构建,相比原项目,本项目主要包含以下变更:
- 🎨 双主题支持:
- 新增点击
主题按钮,切换主题显示,内置两种 HTML 模板(顶栏主题和侧栏主题),默认主题是顶栏主题。 - 优化订阅源主题样式,新增卡片排列方式。顶栏主题支持3列卡片显示,侧栏主题支持2列卡片显示。
- 新增点击
📂 分类管理优化:
- 订阅源自定义分类(如播客、新闻、博客等),改用YAML方式打造配置文件,便捷管理订阅源分类,将文章解析和分类分配两个步骤分开,使代码更清晰、更健壮。
- 下拉框菜单新增分类显示(按
feeds.yaml文件的订阅源顺序),支持输入搜索。
- 💡 今日文章高亮: 自动为当天发布的文章添加
今日更新标志,便于突出显示。 - ⚡ 返回顶部按钮:新增返回顶部按钮,一键复原。
- 🚀 高性能并行抓取:使用
curl_multi并行处理所有订阅源,大幅提升抓取速度,避免重复解析同一个 Feed 的标题,并确保来自同一源的所有文章都使用相同的频道名。 - 🖼️ 智能图片处理: 自动提取文章内嵌图片并修正相对路径。若无图片,则回退至网站Favicon,并配有加载默认占位符图片,确保视觉一致性。
- 🎧 沉浸式播客体验:全面兼容MP3、M4A、OGG等主流音频格式,播放控件自动嵌入,支持关闭控件,优化控件样式。通过预加载音频元数据,实现了自定义进度条和时长显示,在提供丰富交互的同时保证了极致的加载性能。
- 🗂️ 数据驱动:生成
feed.json(文章数据) 和channels.json(频道分类)文件,便于前端实现动态筛选和交互。 - 🐛 重构项目结构:重新梳理了项目结构,将所有静态资源和生成文件置于
public目录,实现了源码、配置与输出分离,。 - 📊 详细报告: 工作流输出日志优化,清晰展示抓取进度、成功/失败源和最终统计信息,构建过程反馈更直观。
- 🔧 容错性强:自动跳过无效URL、网络错误和解析错误,并提供抓取失败的订阅源日志,不影响整体流程。
项目结构
1 | . |
配置说明
在 feeds.php 文件中,修改下列配置项,改变每个订阅源获取的文章篇数:
1 | $postLimit = 5; // 每个订阅源获取的文章篇数 |
编辑 feeds.yaml 文件,按分类添加想要聚合的RSS/Atom URL。格式如下:
1 | # 支持播客、博客等URL,格式如下: |
- 分类名: 将作为文章的
category属性,可用于前端下拉框中的筛选。- URL列表: 每个分类下可以包含一个或多个订阅源URL。
部署过程
Fork RssWe仓库
点击下面的链接卡片,或者点击RssWe仓库页面右上角的 Fork 按钮,将本仓库复制到你的GitHub账号下。
添加个人访问令牌(PAT)
点击自己的头像,选择 “Settings” -> “Developer settings” -> “Personal access tokens”->”Tokens(classic)“,点击 “Generate new token”,选择”Generate new token(classic)“,验证后,指定一个描述性名称,选择令牌永不过期,选择要授予此令牌的范围或权限。只需要选择repo一项即可。点击”Generate token“,完成创建,创建完成后,复制保存token,后面要用。

添加Actions secrets
在仓库的“Settings” -> “Secrets and variables” -> “Actions”。点击”Repository secrets“中的“New repository secret”,输入Actions secrets 的名字为GH_PAT(与rsswe.yaml文件中的保持一致),并将复制的token粘贴至Secrets框中,点击”Add secret“保存。

添加订阅源
编辑 feeds.yaml 文件,自定义分类添加想要聚合的RSS/Atom URL。
启用工作流
在.github/workflows/rsswe.yaml中,取消push部分和schedule部分的注释,注释 workflow_dispatch:,启动工作流。
1 | on: |
在发布至GitHub Pages步骤中,添加推送仓库和对应分支即可。
1 | - name: 发布至GitHub Pages |
关于JamesIves/github-pages-deploy-action@v4更多配置参数,参考JamesIves/github-pages-deploy-action#configuration-。












