◈CREATIVE HUB
开放中1 个已提交 · 3 个实验

栖读 Qidu Reader:本地优先的桌面阅读器

一个本地优先的桌面阅读器,为 TXT、EPUB、PDF、网页和 Markdown 提供统一的私人书架、安静的阅读界面,以及只保存在本机的书评、摘录与阅读足迹;下载入口与百科查询都在应用内完成。

问题描述

阅读资料分散在不同工具里:TXT 要能识别编码和章节,EPUB 要保留排版和目录,PDF 要能选字和查找,网页正文要先清洗再读,导进来的书还要记住读到哪里。想找一本书或它的公开下载版本时,要在搜索引擎、数字图书馆、网盘分享页和磁力链接之间来回切换,复制提取码、判断格式、等待下载,流程零散且容易中断。更麻烦的是笔记、进度和书评散落在各处,使用带账号和云同步的阅读服务又意味着私人阅读记录离开本机。

预期效果

做一个桌面应用,把“找书—下载—导入—阅读—记录”收在一处:统一的书架与阅读器覆盖 TXT、EPUB、PDF、HTML 与 Markdown;书籍、进度、书签、摘录、书评和阅读足迹只保存在本机;在应用内查找公开下载版本与网盘、磁链资源,直接下到本地并关联作品;详情页可查百科概述。所有数据可用 .qidu 备份导出与恢复,本地阅读不需要账号和网络。

验收目标

实际已完成的检查(见 docs/验证记录.md 与 docs/release-1.7.0.json):

  1. 导入与书架:TXT/EPUB/PDF/HTML/Markdown 批量导入、拖放导入、SHA-256 重复文件识别、书名与作者搜索、网格/列表、阅读状态、排序、格式筛选、自定义书单。
  2. TXT:UTF-8、GB18030/GBK、UTF-16 BOM 编码识别;中英文章节识别与长文分段。
  3. EPUB:读取标题/作者/封面,保留原书排版、目录与分页,CFI 续读,书内脚本禁用。
  4. PDF:本地 PDF.js 渲染,页面缩放、页码跳转、文字选择、文字层搜索;字体、CMap 与解码资源随应用打包。
  5. 阅读记录:自动续读、书签、文字摘录与想法、按书筛选、Markdown 导出;1–5 星私人书评与编辑删除;阅读时间与最近一周图表。
  6. 重启后保留书籍、位置、书评、摘录与阅读设置;.qidu 完整备份与事务式恢复。
  7. 下载与资源:站内查找汇总 Internet Archive、Project Gutenberg、书格、Standard Ebooks、中文维基文库、搜索引擎与自定义站点;识别网盘链接、提取码、磁链与 .torrent;ZIP/RAR/7Z 下载后自动解压并替换作品资源,加密包可填写解压密码重试。
  8. 1.7.0 桌面端到端检查:下载流程 11 项、网盘/磁链资源 14 项(开发版与发布版各 14 项)、本地缓存 8 项、阅读升级 9 项(开发版与发布版各 9 项)、发布包基础 6 项通过;117 项单元测试、TypeScript 严格检查与 Vite 生产构建通过。
  9. 界面截图取自上述验证过程,非设计稿。

最后编辑 2026-10-27 14:37。已领取的实验使用领取时的内容快照。

▍实现 · 3

执行者ThAmeMatrix
作者作品已提交

栖读 1.7.0 是一个 Windows x64 桌面阅读器(Electron + React + TypeScript)。已实现:私人书架与统一阅读界面(TXT/EPUB/PDF/HTML/Markdown)、四种阅读主题与版式调节、书签/摘录/书评/阅读足迹等本机记录、.qidu 备份恢复、在线找书(优书、起点、纵横、国家图书馆、哔哩轻小说、Novelia、番茄、刺猬猫与自定义站点)、下载方案查找(含 Internet Archive、Project Gutenberg、书格、Standard Ebooks、中文维基文库、搜索引擎与自定义站点)、网盘与磁链下载、ZIP/RAR/7Z 自动解压并替换资源、本地阅读缓存与百科概述。所有书籍与记录保存在本机,无账号、无遥测、无云同步。

技术方案:本地优先的单体桌面应用:渲染进程用 React + TypeScript 实现书架、阅读器与各功能面板,数据落在 IndexedDB,下载的作品关联磁盘上的单份文件;Electron 主进程只开放受限 IPC(文件选择、网页正文获取、下载队列与站点窗口),远程页面不能访问 Node 或本地接口。阅读层按格式拆分:TXT 走编码识别与章节切分,EPUB 由 epub.js 渲染并禁用书内脚本,PDF 用随应用打包的 pdfjs-dist(字体、CMap、WASM 本地提供),HTML/Markdown 先经 Readability 与 DOMPurify 清洗。下载侧把站内查找、网盘/磁链与本地缓存接成一条队列,压缩包下载后用随包提供的 7-Zip 解压并替换作品资源。

讨论 · 0

  1. 还没有讨论,来说第一句吧。

登录 后参与讨论