目录扫描
扫描本地目录,自动提取书名、作者、出版社、语言、简介、大小与 MD5,并从书里抽出封面;支持 EPUB、PDF、MOBI、AZW3、KEPUB。
Windows / macOS / Linux 上的本地电子书库
用 Wails v2 + Go + React 写的本地电子书管理应用。扫描本地目录建书架,用标签把书理清楚,epub / pdf / mobi 直接应用内阅读,还有十四个内置小工具收拾 PDF —— 数据只存在你自己的磁盘上,全部装在一个 SQLite 文件里。
Windows 10/11 · macOS · Linux · 免安装绿色版 · MIT 协议
扫描本地目录,自动提取书名、作者、出版社、语言、简介、大小与 MD5,并从书里抽出封面;支持 EPUB、PDF、MOBI、AZW3、KEPUB。
封面网格 + 关键词搜索、格式筛选、多标签「或 / 且」筛选与多种排序;卡片上直接显示阅读进度和豆瓣评分,浏览位置也会记住。
新建、改名换色、冻结、删除标签,拖拽排出自己的顺序,还能随机配色;或者切到标签云,字号随收录的书本数变大。
按书名从豆瓣获取封面、链接、评分与评价人数,可以批量补全,也可以在书籍详情里单本搜索关联。
EPUB / KEPUB 用 epub.js,PDF 用 pdf.js,MOBI / AZW3 用内置的 PalmDoc 解压与解析(内嵌图片也能显示);阅读位置、页数与进度按书记录,加密 PDF 只需输一次密码。
阅读器工具栏里可以随时调整字号,也能打开护眼模式(epub 变暖色纸、PDF 换暖底衬);两项都只在本次会话生效,不动全局设置。
每次阅读都累计到总时长;长时间停在同一页只算 1 分钟,这个闲置上限可以在设置里改。
阅读时选中文字即可加笔记(含原文引用与位置),之后可以查看和删除。
密码、合并、提取页面、修改文档、压缩文档、PDF → EPUB、EPUB → PDF、转存图片……全部离线,只动你自己的文件。
把误识别的书标记为误录,下次扫描按路径与 MD5 双重匹配自动跳过,随时可以恢复。
书籍数、总体积、累计阅读时长、笔记数,格式分布、最近入库,以及完整的阅读记录列表。
界面内置简体中文、繁體中文与 English,设置里随时切换。
不用注册、不上云、无遥测 —— 所有数据就是 exe 旁边的一个 SQLite 文件。
关掉窗口只是收进系统托盘;再启动一次只会把已经在跑的窗口唤到前台。
全部离线运行,只处理你自己挑选的文件(包括书架上已有的 PDF)。
给 PDF 加上打开密码。
去掉 PDF 的打开密码。
把多个 PDF 按顺序合并成一个新文件。
挑出 PDF 里的页面,另存成一个新的 PDF。
把页面导成 PNG / JPEG 图片,可以只导指定页面。
查看并修改 PDF 的标题、作者、主题与关键词。
用 Ghostscript 重写 PDF,按档位降采样图像来减小体积。
把 PDF 的文字排版成 epub,可选择保存目录。
把 epub 排版成带书签目录的 PDF,内嵌字体、文字可选中。
扫描本地目录,把新增的电子书加入书架。
新建 / 改名换色 / 冻结 / 删除标签,并可按标签查看书籍。
查看并恢复被标记为误录的文件。
为缺少评分 / 封面的书批量获取豆瓣信息。
book.db 与封面缓存所在位置,可一键打开。
go install github.com/wailsapp/wails/v2/cmd/wails@latestxattr -dr com.apple.quarantine book-manager.applibwebkit2gtk-4.1 与 libgtk-3(在 Ubuntu 24.04 上构建,glibc 2.39+)just setup | 安装前端依赖 |
just dev | 开发模式(热重载) |
just build | 生产构建 → src/build/bin/book-manager.exe |
just release | 发布构建 → release/book-manager.exe |
just test | Go 后端测试 + JS 解析器 + i18n 检查 |
just ui-test | 前端 UI 冒烟测试(需 Edge + playwright-core) |
just icon | 从 asserts/logo.png 重新生成应用图标 |
just fmt | Go 格式化 + 静态检查 |
just docs | 重新生成 README 与官网 |
just site-test | 用无头浏览器渲染官网,检查链接、图片与语言切换 |
just push "msg" | 提交并推送(中文 message) |
详细开发约定见 agents.md —— 每次开发会话结束时必须提交并推送。
<数据目录>/book.db —— SQLite,纯 Go 实现,可用环境变量 BOOKMANAGER_DATA_DIR 覆盖目录。<数据目录>/covers/ 与 <数据目录>/.image/。在生产构建(内嵌资源)模式下,新版 WebView2 与本机 GPU 组合可能因 Wails 的 Hide / Show 可见性 workaround 触发不重绘问题:窗口只显示背景色。规避方案内置在 src/platform_windows.go:
app.Windows = &windows.Options{
WebviewGpuIsDisabled: true, // --disable-gpu,文本类应用无影响
WebviewUserDataPath: resolveWebviewUserDataPath(dataDir),
},
若要诊断此类问题,可用 wails build -debug 打开 DevTools,或用 WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS=--remote-debugging-port=9333 连接 CDP。
src/version.go 里的 Version 常量。src/version.go 并推送 —— GitHub Actions 自动构建三平台包并建 Release;本地 just release 只出 Windows exe。每个版本都由 GitHub Actions 打成三平台免安装包,并把提交信息汇总成 release 说明:Windows 单文件 exe(book-manager-<版本>-windows-x64.zip)、macOS 通用 app(-macos-universal.zip)、Linux x64 压缩包(-linux-x64.tar.gz)。解压即用,数据目录会建在程序旁边。