EPUB Reader
一个极简的 VSCode / Trae 扩展,用来在编辑器中直接阅读 .epub 电子书。
功能
- 直接在编辑器里打开
.epub 文件
- 左侧目录(解析 OPF + NCX)
- 上一章 / 下一章 工具栏
- 键盘导航:
← / → / Space / PageUp / PageDown
- 章节中的
<img> 资源从 zip 内联为 data URL
- 阅读进度持久化:自动保存当前章节和滚动位置,下次打开自动恢复(用
globalState,跨工作区有效)
- 复位按钮:清除当前 epub 的阅读进度
- 自适应 VSCode 主题色
项目结构
epub-reader/
├── package.json # 扩展清单
├── tsconfig.json # TS 配置
├── .vscodeignore # 打包忽略
├── src/
│ └── extension.ts # 入口:注册 Custom Editor
├── media/
│ ├── main.css # 阅读器样式
│ ├── main.js # webview 端:解析/渲染
│ └── jszip.min.js # webview 端 zip 解析
├── out/
│ └── extension.js # esbuild 打包产物(已 bundle jszip)
├── test/ # 解析 & 模拟测试
└── epub-reader-0.1.1.vsix # 打包产物
安装
方式 1:本地安装 .vsix
# VSCode
code --install-extension epub-reader-0.1.1.vsix
# Trae (macOS)
open -a Trae # 先打开 Trae,然后:
# 扩展面板 -> ... -> 从 VSIX 安装 -> 选择 epub-reader-0.1.1.vsix
方式 2:源码调试
在 VSCode / Trae 中打开本目录,按 F5 启动扩展开发宿主。
使用
- 重启编辑器
- 直接点击工作区里的任意
.epub 文件即可
- 也可以运行命令面板
EPUB Reader: 用 EPUB Reader 打开
重新打包
cd epub-reader
npm install
npm run package # = npm run build && vsce package
npm run build 走的是 esbuild,会把 jszip 及其传递依赖一起 bundle 到 out/extension.js,所以 .vsix 不需要带 node_modules/。
兼容性
- VSCode ≥ 1.75
- Trae IDE(基于 VSCode 内核,直接兼容)
限制
- 仅支持 EPUB 2.x(OPF + NCX 目录);EPUB 3 的 NAV 文档会回退到 spine 顺序
- 不修改源文件,纯只读阅读器
- 不支持自定义字体/字号(跟随编辑器主题)
| |