Fluent Reader - 现代化的桌面RSS阅读器
项目标题与描述
Fluent Reader 是一款现代化的桌面 RSS 阅读器应用,采用 Fluent Design 设计语言,支持全黑暗模式。该项目基于 Electron 构建,提供了跨平台的 RSS 订阅管理解决方案。
主要特点:
- 支持本地阅读或与自托管服务同步(兼容 Fever 或 Google Reader API)
- 多平台支持(Windows/macOS/Linux)
- 响应式设计和优雅的用户界面
功能特性
- :artist_palette: 受 Fluent Design System 启发的现代化 UI,支持完整黑暗模式
- :counterclockwise_arrows_button: 支持与多种 RSS 服务同步(Inoreader、Feedbin、The Old Reader、BazQux Reader 等)
- 导入/导出 OPML 文件,完整的应用数据备份与恢复
- 内置文章视图阅读全文或默认加载网页
- :magnifying_glass_tilted_left: 支持正则表达式搜索文章或按阅读状态筛选
- 使用文件夹式分组组织订阅源
- ⌨️ 单键键盘快捷键支持
- ⚙️ 自动隐藏、标记为已读或收藏文章的规则设置
- 后台获取文章并发送推送通知
- :globe_showing_Europe-Africa: 多语言国际化支持(20+种语言)
安装指南
Windows/macOS 用户
推荐通过应用商店安装:
其他平台
可以从 GitHub Releases 下载最新版本。
从源码构建
# 安装依赖
npm install
# 编译TypeScript和依赖
npm run build
# 启动应用
npm run electron
# 生成签名证书
electron-builder create-self-signed-cert
# 打包Windows应用
npm run package-win
使用说明
基本使用
// 初始化应用
import { initApp } from "./scripts/models/app"
import { rootStore } from "./scripts/reducer"
rootStore.dispatch(initApp())
// 渲染主界面
ReactDOM.render(
<Provider store={rootStore}>
<Root />
</Provider>,
document.getElementById("app")
)
订阅源管理
// 创建订阅源组
export class SourceGroup {
isMultiple: boolean
sids: number[]
name?: string
expanded?: boolean
constructor(sids: number[], name: string = null) {
name = (name && name.trim()) || "Source group"
if (sids.length == 1) {
this.isMultiple = false
} else {
this.isMultiple = true
this.name = name
this.expanded = true
}
this.sids = sids
}
}
文章视图
// 文章组件
class Article extends React.Component<ArticleProps, ArticleState> {
// 处理文章加载
async function getArticle(url) {
let article = get("a")
if (get("m") === "1") {
return (await Mercury.parse(url, {html: article})).content || ""
} else {
return article
}
}
// 渲染文章内容
render() {
return (
<div id="main"></div>
)
}
}
核心代码
主窗口管理
// WindowManager.ts
export class WindowManager {
mainWindow: BrowserWindow = null
createWindow() {
this.mainWindow = new BrowserWindow({
title: "Fluent Reader",
backgroundColor: nativeTheme.shouldUseDarkColors ? "#282828" : "#faf9f8",
vibrancy: "sidebar",
width: 1200,
height: 700,
minWidth: 992,
minHeight: 600,
frame: process.platform === "darwin",
titleBarStyle: "hiddenInset",
webPreferences: {
webviewTag: true,
contextIsolation: true,
preload: path.join(app.getAppPath(), "dist/preload.js")
}
})
}
}
数据存储
// db.ts
export async function init() {
sourcesDB = await sdbSchema.connect({ onUpgrade: onUpgradeSourceDB })
sources = sourcesDB.getSchema().table("sources")
itemsDB = await idbSchema.connect()
items = itemsDB.getSchema().table("items")
if (window.settings.getNeDBStatus()) {
await migrateNeDB()
}
}
主题设置
// theme.ts
export function setThemeDefaultFont(locale: string) {
switch (locale) {
case "zh-CN":
lightTheme.defaultFontStyle.fontFamily =
'"Segoe UI", "Source Han Sans SC Regular", "Microsoft YaHei", sans-serif'
break
case "ja":
lightTheme.defaultFontStyle.fontFamily =
'"Segoe UI", "Source Han Sans JP Regular", "Yu Gothic UI", sans-serif'
break
// 其他语言支持...
}
}
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码
Fluent Reader - 现代化的桌面RSS阅读器的更多相关文章
- 为什么说Thunderbird是最好的桌面RSS阅读器
也许现在再讨论RSS阅读器似乎已经过时了,毕竟随着社交网络服务的发展,通过一个带有大众评分能力的社交网络(比如reddit),相比RSS的固定订阅而言,也许你能更快地在你所关心的话题上更快地获得新的资 ...
- Tiny Rss Reader - 迷你RSS阅读器
发布新软件 TinyRss: Windows平台上的一个小巧的Rss阅读器. 用户界面: 项目地址: https://github.com/movsb/tinyrss.git 测试下载: http:/ ...
- RSS阅读器&BT sync
①RSS阅读器? 答:RSS阅读器是一种软件或是说一个程序,这种软件可以自由读取RSS和Atom两种规范格式的文档,且这种读取RSS和Atom文档的软件有多个版本,由不同的人或公司开发,有着不同的名字 ...
- RSS阅读器(一)——dom4j读取xml(opml)文件
接触java不久,偶有收获,最近想做一个web版RSS阅读器来锻炼一下.手头有几个从不同版本的foxmail中导出的opml文件,大家应该都知道,opml文件就是xml格式的.那么就先从这里入手,练习 ...
- Web版RSS阅读器(二)——使用dTree树形加载rss订阅分组列表
在上一边博客<Web版RSS阅读器(一)——dom4j读取xml(opml)文件>中已经讲过如何读取rss订阅文件了.这次就把订阅的文件读取到页面上,使用树形结构进行加载显示. 不打算使用 ...
- Web版RSS阅读器(五)——初步完成阅读功能
上一篇博文<Web版RSS阅读器(四)——定制自己的Rss解析库myrsslib4j>中,已经分享给大家制作自己的rss解析库.稍微有点遗憾的是,它仅仅支持rss格式的博客.现在给大家分享 ...
- 一步一步学Silverlight 2系列(18):综合实例之RSS阅读器
一步一步学Silverlight 2系列(18):综合实例之RSS阅读器 概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支 ...
- C#版简易RSS阅读器
C#版简易RSS阅读器.由VB版修改完成,感谢aowind的技术支持! 源代码: using System; using System.Drawing; using System.Collection ...
- RSS阅读器
RSS阅读器(Really Simple Syndication)是一种软件/程序,实质都是为了方便地读取RSS和Atom文档.大概就是实现了订阅式阅读,推送用户感兴趣的新闻,博客等(比如等某位博主更 ...
- RSS阅读器python实现概述
这边简单说一下最近倒腾的RSS阅读器的小东东,RSS阅读器估计很多人用过或者自己动手实现过.首先wudagang0123多年前提供的一个示例:http://bbs.chinaunix.net/foru ...
随机推荐
- Vite CVE-2025-30208 安全漏洞
Vite CVE-2025-30208 安全漏洞 一.漏洞概述 CVE-2025-30208 是 Vite(一个前端开发工具提供商)在特定版本中存在的安全漏洞.此漏洞允许攻击者通过特殊的 URL 参数 ...
- "油猴脚本""篡改猴"领域的一些基本常识
本文简要介绍本人对"油猴脚本","篡改猴"领域的一些见解,内容注定不可能一步到位和事无巨细,欢迎各位仁人志士对我批评指正,提出意见建议.另外转载前请务必注明作者 ...
- firedac的性能
应该说,目前10.3的方方面面基本正常的坑基本填好了.因此综合考虑还是用datasanp+firedac框架操练. ================================ 数据量2w行,字段 ...
- 2025年Anaconda官网最新版本Anaconda下创建虚拟环境,并在新创建的虚拟环境下一次性安装多个软件包的经验总结
一.为了使用tensorflow软件包中的tensorboard软件包工具,在python==3.12.8环境下创建虚拟环境pytorch,使用命令行如下.1.1 使用Anaconda prompt, ...
- Linux poweroff 命令
poweroff 命令命令用于关闭计算器并切断电源. 使用权限:系统管理者. 语法 poweroff [-n] [-w] [-d] [-f] [-i] [-h] 参数说明: -n : 在关机前不做将记 ...
- 『Plotly实战指南』--雷达图绘制与应用
在数据分析和可视化领域,雷达图是一种适用于多维数据的可视化.综合评估和决策支持的工具. 雷达图通过将数据点沿多个轴分布,并通过多边形面积或线条连接来展示数据的多维度特征,能够直观地呈现数据在各个维度上 ...
- (转)python批量提取PDF第一页输出为图片
一:步骤 1.使用input输入路径 2.生成图片存户路径同存放路径 3.生成图片为PNG格式 4.支持自定义截取页数,建议为第一页 二:安装扩展类 pip install PyMuPDF 三:示例代 ...
- Spring Boot 根据配置决定服务(集群、单机)是否使用某些主件
比如:在集群模式下,我想用 Nacos 组件,单机版不想用它. server: name: VipSoft Server Dev port: 8193 cloud: nacos: discovery: ...
- TablesOfContents.Add 方法 (python3处理Word添加目录)
TablesOfContents.Add 方法 (Word) 返回一 个 TableOfContents 对象,该对象代表添加到文档中的目录. 语法 表达式.Add (Range, UseHeadin ...
- Axure RP仿抖音短视频APP交互原型图模板
Axure RP仿抖音短视频APP高保真交互原型模板,原型图设计灵感来自于抖音段视频APP,在预览里你可以看到抖音的影子.本素材包含登录.首页推荐.同城.直播间.消息.朋友.发布.我的.搜索等主要模块 ...