把普通 PDF 放到一张安静的雨夜书桌上阅读。
雨读只提供阅读器,不提供书。公开仓库、源码压缩包和便携包均不包含任何受版权保护的 PDF。
截图使用自制演示 PDF,不包含真实书籍内容或个人阅读记录。
雨读是一个本地优先、无需安装的 PDF 阅读器。它使用浏览器渲染,但不是在线网站:PDF 在本机读取,页码、书签、随手记和偏好保存在本机浏览器中。
它希望保留“读一本书”的感觉,而不只是显示一份文档:
- 双页书本布局与翻页动效。
- 单页、自适应移动端与全屏阅读。
- PDF 原生目录、全文搜索和页码跳转。
- 按每份 PDF 分别保存阅读进度、书签和随手记。
- 暖纸、清昼、夜读三套主题。
- 可关闭的雨幕,以及本地生成的雨声与氛围音乐。
- 点击选择或直接拖入 PDF。
- 支持受密码保护的 PDF。
- 下载仓库或 Release 中的 Windows 便携 ZIP,并完整解压。
- 双击
打开雨读.cmd。 - 点击“选择 PDF”,或把 PDF 拖入窗口。
普通使用不需要安装 Node.js、Python,也不需要联网。请不要直接双击 index.html,浏览器对 file:// 的安全限制会阻止 PDF.js 正常加载工作线程。
如果希望每次启动自动打开同一本书:
- 把自己的 PDF 命名为
book.pdf,放进assets/。 - 打开
assets/default-book.json,把file从null改为"book.pdf",并按需填写显示名称。
YuRead/
└─ assets/
├─ default-book.json
└─ book.pdf # 私人文件,已被 Git 忽略
assets/book.pdf 不会被 Git 跟踪,也不应提交给他人。
雨读前端本身只需要一个本地静态服务器。在 macOS 或 Linux 中,可以用自己信任的本地服务器托管仓库根目录,例如:
python3 -m http.server 4173 --bind 127.0.0.1然后访问 http://127.0.0.1:4173/。仓库附带的一键启动脚本和安全加固服务器目前面向 Windows PowerShell。
| 操作 | 方式 |
|---|---|
| 翻页 | 点击书页两侧、触屏左右滑动、← / →、PageUp / PageDown 或空格 |
| 打开 PDF | 顶部按钮、拖放文件或按 O |
| 收藏当前页 | 顶部书签按钮或按 B |
| 全文搜索 | 顶部搜索按钮或按 F |
| 跳转页码 | 输入页码、拖动底部进度条或点击目录 |
| 退出面板 | 按 Esc |
- PDF 由浏览器的 File API 在本机读取,不上传到服务器。
- 本地服务只监听
127.0.0.1,不会暴露到局域网。 - 服务只允许读取运行所需的 HTML、CSS、JavaScript、PDF.js,以及可选的
assets/book.pdf。 - 页码、书签、笔记和设置保存在浏览器
localStorage中。 - 雨声和氛围音乐通过 Web Audio API 离线生成,不加载外部音频。
- 旧版
courage-reader-v1数据会在首次读取时迁移到yudu-reader-v1。
清除浏览器中 127.0.0.1:4173 的站点数据会同时删除阅读进度、书签和随手记。更换端口或浏览器时,这些记录不会自动同步。
YuRead/
├─ index.html 界面结构与安全策略
├─ styles.css 书本、雨幕、主题和响应式布局
├─ app.js PDF 渲染、搜索、翻页、书签、笔记和声音
├─ server.ps1 仅回环地址可访问的白名单静态服务器
├─ 打开雨读.cmd Windows 一键启动入口
└─ assets/pdfjs/ PDF.js 5.6.205 运行文件与许可证
项目没有前端框架和生产构建步骤,核心技术为原生 HTML、CSS、JavaScript、Canvas、Web Audio API 和 PDF.js。
需要 Node.js 22+,仅用于开发检查:
npm test测试会检查 JavaScript 语法、本地服务启动、资源访问、HEAD 请求、安全响应头、私有 PDF 缺省状态,以及对源码和非白名单文件的拒绝访问。
仓库包含阅读器源码、启动脚本、测试、文档和 PDF.js 运行文件,不包含:
- 任何书籍、论文或用户 PDF。
- 页码、书签、随手记和浏览器数据。
- 用户截图、日志、账号信息或其他个人文件。
- 无法确认来源与许可证的第三方资产。
欢迎改进可访问性、PDF 兼容性、键盘与触屏体验、渲染性能、隐私边界和文档。提交前请阅读 CONTRIBUTING.md 和 SECURITY.md。
感谢 Mozilla 与 PDF.js 贡献者提供 PDF 解析和渲染能力。雨读自身源码采用 Apache License 2.0,Copyright 2026 k4ubx7。
PDF.js 5.6.205 同样采用 Apache-2.0,保留其原始许可证和版权声明;详情见 THIRD_PARTY_NOTICES.md。致谢不表示 Mozilla 或 PDF.js 为本项目背书。


