一个基于 EPUB.js 的现代化网页EPUB电子书阅读器,支持多种阅读模式和主题。
可应用于Alist/Openlist的Epub文件预览。
- 翻页: 点击工具栏的
←
→
按钮或使用键盘方向键 - 目录: 点击
目录
按钮显示/隐藏章节目录 - 字体: 使用
A+
A-
按钮调整字体大小 - 主题: 点击主题按钮(🌙/☀)切换阅读主题
- 默认模式:标准的黑字白底
- 护眼绿模式:绿色护眼背景
- 暖黄模式:温暖的黄色背景
- 夜间模式:深色背景浅色文字
- 单/双页切换 - 支持单页/双页模式切换,支持桌面/移动端
可以直接使用本仓库的github-pages;
但是如果连不上github可能就用不了:
# Alist/Openlist使用这个:
https://jiang068.github.io/epubjs/test.html?url=$durl
# 其他用途使用这种,请自己拼接链接:
https://jiang068.github.io/epubjs/test.html?url=你的EPUB文件地址
# 注意:有的浏览器不允许在https站点后面加载http资源,所以EPUB文件地址最好是https的
- 将项目文件部署到Web服务器
- 在浏览器中访问
test.html?url=你的EPUB文件地址
即可
# 克隆项目
git clone https://github.com/jiang068/epubjs.git
# 启动本地服务器(以Python为例)
cd epubjs
python -m http.server 8000
# 在浏览器中访问
http://127.0.0.1:8000/test.html?url=path/to/your/book.epub
# 也可以接在线地址
http://127.0.0.1:8000/test.html?url=https://example.com/sample.epub
epubjs/
├── test.html # 主页面文件
├── style.css # 样式文件
├── README.md # 项目说明
├── js/ # JavaScript文件目录
│ ├── reader.js # 核心阅读器逻辑
│ ├── epub.min.js # EPUB.js 核心库
│ ├── jszip.min.js # ZIP解压库
│ ├── localforage.min.js # 本地存储库
│ └── marked.min.js # Markdown解析库
└── pics/ # 图片资源目录
├── demo1.jpg # 界面预览图1
└── demo2.jpg # 界面预览图2
核心依赖:EPUB.js
- epub.min.js - EPUB文件解析和渲染
- jszip.min.js - JS文件压缩
- localforage.min.js - 本地数据存储
- marked.min.js - Markdown内容解析
- 在
test.html
中添加UI元素 - 在
style.css
中添加样式 - 在
js/reader.js
中实现功能逻辑
- 某些复杂的EPUB可能丢样式
- 部分浏览器的CORS策略可能影响远程文件加载
- 窗口大小变化时,内容页面不能动态响应
- 调整单/双页时不能保留阅读进度(对于Epub可能无解)
- 字号设置没有缓存,切章失效