功能特性
Reader-Rust 是一个用 Rust 实现的书源阅读服务器,包含两套前端界面。以下是当前已实现的功能。
前端界面
本项目提供两个前端版本:
新版前端(推荐)
- 路径:
frontend/ - 技术栈: Vue 3 + TypeScript + Vite + Pinia
- 状态: 功能完整,推荐使用
已完成功能:
基础架构
- Vite + Vue 3 + TypeScript 项目
- CSS 变量设计系统(亮色/暗色主题)
- Axios 封装(Token 注入、统一错误处理)
- Vue Router 路由配置
- Pinia 状态管理
书架功能
- 书架首页(分组展示、响应式网格布局)
- 分组标签页(全部 / 未分组 / 自定义分组)
- 书籍卡片(封面、书名、作者、未读角标)
- 编辑模式批量删除
搜索功能
- SSE 实时多源搜索
- 搜索结果列表展示
- 搜索中动画指示器
- 搜索结果加入书架
阅读功能
- 全屏阅读区域
- 章节目录抽屉(左侧滑出,高亮当前)
- 字体/行距调节(A-/A+, 1.5/1.8/2.0/2.5)
- 阅读进度保存
- 简繁转换(OpenCC.js)
- 上一章/下一章导航
阅读增强
- 左侧导航栏(书架、书源、目录、设置、首页)
- 右侧浮动工具栏(书签、刷新、自动翻页、听书、夜间模式)
- 完整阅读设置面板(主题、字体、排版、翻页设置)
- 书签管理(添加/查看/删除书签)
- 书源切换(阅读页内切换数据源)
- 章节内容全文搜索
- 内容过滤规则(去广告)
- 自动翻页(像素滚动、可调速度)
- 翻页点击区域可视化
书源功能
- 书源管理弹窗(启用/禁用、分组筛选、删除)
- 远程 URL 导入书源
- 书海探索(按分类浏览书源书籍)
RSS订阅
- RSS 源管理
- 文章列表浏览
- 文章内容阅读
设置
- 登录/注册/注销
- 用户信息显示
- 亮色/暗色主题切换
- 阅读统计(累计时长、书籍数、章节数)
- 书架缓存刷新
- 服务端备份
PWA 支持
- 离线访问(缓存最近阅读章节)
- 安装到主屏幕
- Service Worker 更新
- 离线 HTML 页面
启动方式:
bash
cd frontend
npm install
npm run dev # 开发模式
npm run build # 构建旧版前端
- 路径:
web/ - 技术栈: Vue 2 + Element UI + Vue CLI
- 状态: 稳定可用,功能完整
功能特性:
- 本地存储阅读记录与设置
- 阅读主题切换
- 夜间模式
- 字号调节
- 字体调节
- 阅读宽度调节
启动方式:
bash
cd web
npm install
npm run serve # 开发模式
npm run build # 构建前端对比
| 特性 | 新版 (frontend/) | 旧版 (web/) |
|---|---|---|
| Vue 版本 | Vue 3 | Vue 2 |
| 构建工具 | Vite | Vue CLI |
| 状态管理 | Pinia | Vuex |
| UI 框架 | 纯 CSS + 组件 | Element UI |
| 类型安全 | TypeScript | JavaScript |
| PWA | ✅ | ❌ |
| 离线阅读 | ✅ | ❌ |
| 课程度 | 开发中 | 稳定 |
后端功能
- 书源列表 - 查看已添加的书源
- 添加/编辑书源 - 支持自定义书源规则
- 批量导入导出 - JSON 格式的书源批量操作
- 书源测试 - 内置调试工具,测试搜索和解析
- 读取远程书源 - 从 URL 导入书源文件
- 设置默认书源 - 标记默认书源
- 删除书源 - 单书源或全部清空
书籍搜索
- 关键词搜索 - 通过书源搜索书籍
- 发现页浏览 - 按分类浏览书籍
- 多源搜索 - 同时搜索多个书源
- 搜索结果过滤 - 查找有效书源
- 书源调试 - 实时调试书源解析 (SSE)
书架管理
- 书架列表 - 查看所有收藏的书籍
- 添加书籍 - 保存到书架
- 删除书籍 - 单本或批量删除
- 获取书籍详情 - 包含缓存信息
- 设置书源 - 更换书籍的数据源
- 书籍分组 - 创建分组、移动书籍到分组
- 书籍排序 - 拖动调整显示顺序
阅读功能
- 获取目录 - 拉取书籍章节列表
- 章节正文 - 获取并解析章节内容
- 阅读进度 - 保存和恢复阅读位置
- 删除缓存 - 清理本地章节缓存
- 缓存书籍 - 预下载章节 (SSE 实时进度)
书签功能
- 获取书签 - 列表查看
- 添加书签 - 保存阅读位置
- 批量书签 - 多条书签操作
- 删除书签 - 单条或批量删除
替换规则
- 规则列表 - 管理文本替换规则
- 添加规则 - 创建替换模式
- 批量操作 - 多条规则导入
- 删除规则 - 清理不需要的规则
RSS 订阅
- RSS 源管理 - 添加、编辑、删除订阅源
- 导入导出 - 远程或本地 RSS 源文件
- 获取文章 - 拉取 RSS 文章列表
- 文章内容 - 解析并阅读 RSS 内容
服务端备份
- 文件列表 - 浏览 服务端备份文件
- 下载文件 - 从服务端获取
- 上传文件 - 备份到 服务端
- 删除文件 - 清理云端文件
用户系统
- 登录登出 - JWT Token 认证
- 用户信息 - 查看当前登录用户
- 用户列表 - 管理多用户 (管理员)
- 添加用户 - 创建新账号
- 修改密码 - 自助或重置他人密码
- 删除用户 - 管理员删除用户
- 用户配置 - 个性化设置存取
其他功能
- 文件上传 - 上传图片等资源
- 文件删除 - 管理上传的文件
- 获取封面 - 书籍封面图代理
- 无效书源检测 - 找出失效的书源
- TXT 目录规则 - 获取默认目录解析规则
技术特点
- 高性能 - Rust 实现,异步处理
- 多解析器 - CSS选择器、JSONPath、XPath、正则、JavaScript
- 数据持久化 - SQLite 存储,文件缓存
- Web 界面 - Vue 2 前端,响应式设计
请求流程
用户请求 -> API 路由 -> Handler -> Service -> Parser/Crawler -> 返回结果配置方式
通过环境变量配置,详见 配置。