基于 React、materialUI 开发的 EPUB 电子书 web 阅读器

2021-10-27 13:52:39 +08:00
 alex1504

平常在公司主要技术栈是 Vue ,此项目为业余时间 React 练手项目,基于 Material-UI 组件库开发。若项目对你有所帮助,可以 star 支持一下。

仓库地址: https://github.com/alex1504/react-epub-reader

3258 次点击
所在节点    分享创造
15 条回复
kamal
2021-10-27 15:22:03 +08:00
楼主有做 epub 电子书的工具么?
lzgshsj
2021-10-27 19:21:17 +08:00
哈哈,当初也做过 vue 的 epub 电子书阅读器,也啃了一阵 epubjs 。当时坑点是页数解析和书签定位,这俩问题都会随着字体字号和排版改变出现偏差。最后页数改成百分比进度,书签错位想着差不离就算了。
Osk
2021-10-27 22:25:50 +08:00
epub 这格式把我整吐了, 至今没有找到一个合适的阅读器.

epub 看起来很美好, 开放, 现代, html5 技术, bla bla... 不过我只觉得烦, 看小说等还好, 基于 html , 可以在移动设备上实现文字重拍等功能, 阅读器也能对内容进行高度的自定义 (CSS).

但我的需求是看技术书籍, epub 的页面布局随心... 高度的自由带来的是不同阅读器有不同的排版风格, 转换成 pdf 也是各种诡异. 简直令人头秃.

最后, 也是被迫用 epubjs 自己搞了一个单页面阅读器, 一个 html 文件搞定很爽, 支持打开本地文件, 支持目录页, 连续滚动阅读模式, 勉强够用了. 书签什么的, 没需求(可能不会搞, 反正可以用目录页跳转就没有继续学习了), bug 一堆, 甚至往后退滚动都不一定能滚回上一章节.


另外 epubjs 的文档实在是... 纯粹的 API 文档, 如果不是有官方的 example, 可能我这种菜鸡都不知道如何使用它.
golangLover
2021-10-27 23:04:32 +08:00
你 github 上面右边的网址为什么不是你图中的样子
emonc
2021-10-28 02:31:11 +08:00
我也基于 electron 写了一个,不过没用 epubjs ,是直接解压出来解析
chutsetien
2021-10-28 03:44:12 +08:00
@kamal sigil 不够用么。话说我都是手写每一章的 html 在 notepad++ 里,使用许多 Macro. 最后只是放到 sigil 里合一下然后就可以放入 kindle previewer 中转 mobi 了……
jarontai
2021-10-28 08:16:30 +08:00
效果不错,支持一下,epub 阅读体验做的最好的,我觉得是苹果的 ibooks ,但不支持跨平台,现在我主力使用的是 neat reader
kamal
2021-10-28 09:37:57 +08:00
@chutsetien #6 感谢推荐,我也试试照你的方法做。
heng1025
2021-10-28 09:52:18 +08:00
我也写了一个 epub 解析器 https://github.com/heng1025/epub-parse
alex1504
2021-10-28 10:43:37 +08:00
@golangLover 应该是吧..
alex1504
2021-10-28 10:44:07 +08:00
@kamal 其他没有,就业余时间做的这个
alex1504
2021-10-28 10:46:54 +08:00
@lzgshsj 书签定位基于 epubjs API 使用 epubCfi 就可以实现了,页数解析我没有加上,头疼的是全文搜索,至今还有 Bug ,关键解析出来的是 HTML ,如果要进行高亮真的头疼..
alex1504
2021-10-28 10:48:26 +08:00
@Osk 哈哈哈,文档真的太简陋了,难顶~
docx
2021-10-28 16:46:57 +08:00
@Osk 试试 Calibre ,另外 Kindle 也支持的(无论硬件还是软件)
Osk
2021-10-28 22:42:07 +08:00
@dzyou2007 calibre 排版也很不美观, 不如 epub 里面的内容解压出来用浏览器渲染 html.🤣

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/810947

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX