V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
alex1504
V2EX  ›  分享创造

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

  •  
  •   alex1504 · 2021-10-27 13:52:39 +08:00 · 3553 次点击
    这是一个创建于 1123 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    preview.png

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

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

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

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

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


    另外 epubjs 的文档实在是... 纯粹的 API 文档, 如果不是有官方的 example, 可能我这种菜鸡都不知道如何使用它.
    golangLover
        4
    golangLover  
       2021-10-27 23:04:32 +08:00
    你 github 上面右边的网址为什么不是你图中的样子
    emonc
        5
    emonc  
       2021-10-28 02:31:11 +08:00
    我也基于 electron 写了一个,不过没用 epubjs ,是直接解压出来解析
    chutsetien
        6
    chutsetien  
       2021-10-28 03:44:12 +08:00   ❤️ 1
    @kamal sigil 不够用么。话说我都是手写每一章的 html 在 notepad++ 里,使用许多 Macro. 最后只是放到 sigil 里合一下然后就可以放入 kindle previewer 中转 mobi 了……
    jarontai
        7
    jarontai  
       2021-10-28 08:16:30 +08:00
    效果不错,支持一下,epub 阅读体验做的最好的,我觉得是苹果的 ibooks ,但不支持跨平台,现在我主力使用的是 neat reader
    kamal
        8
    kamal  
       2021-10-28 09:37:57 +08:00
    @chutsetien #6 感谢推荐,我也试试照你的方法做。
    heng1025
        9
    heng1025  
       2021-10-28 09:52:18 +08:00
    我也写了一个 epub 解析器 https://github.com/heng1025/epub-parse
    alex1504
        10
    alex1504  
    OP
       2021-10-28 10:43:37 +08:00
    @golangLover 应该是吧..
    alex1504
        11
    alex1504  
    OP
       2021-10-28 10:44:07 +08:00
    @kamal 其他没有,就业余时间做的这个
    alex1504
        12
    alex1504  
    OP
       2021-10-28 10:46:54 +08:00
    @lzgshsj 书签定位基于 epubjs API 使用 epubCfi 就可以实现了,页数解析我没有加上,头疼的是全文搜索,至今还有 Bug ,关键解析出来的是 HTML ,如果要进行高亮真的头疼..
    alex1504
        13
    alex1504  
    OP
       2021-10-28 10:48:26 +08:00
    @Osk 哈哈哈,文档真的太简陋了,难顶~
    docx
        14
    docx  
       2021-10-28 16:46:57 +08:00
    @Osk 试试 Calibre ,另外 Kindle 也支持的(无论硬件还是软件)
    Osk
        15
    Osk  
       2021-10-28 22:42:07 +08:00
    @dzyou2007 calibre 排版也很不美观, 不如 epub 里面的内容解压出来用浏览器渲染 html.🤣
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1080 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:05 · PVG 03:05 · LAX 11:05 · JFK 14:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.