谈一谈背时的ePub 作者: Semesse 时间: 2018-09-02 分类: 百草 ## 什么是epub epub是一个~~众所周知的电子图书标准~~,网上可以找到大量的epub电子书,因其具有一定的排版能力和跨平台特性而受到欢迎,本质其实是一个压缩包,只需要改一下后缀成 zip ,就可以看到赤裸裸的本体 大概就是下面这个样子 ``` │ mimetype ├─META-INF │ container.xml └─OEBPS │ content.opf │ toc.ncx └─Text Section0001.xhtml ``` 其中的mimetype是必须有且内容一定的; META-INF 里面存放一些容器信息,一般来说只有 container.xml 告诉根文件的信息,除此之外还有可选的比如 manifest, rights 之类的文件; OEBPS下面的 content.opf 就是整本书的根文件,主要记录了书籍的元数据 metadata,文件清单 manifest,书脊 spine(以及天国的 tour 和 guide )。最后的各个章节的文件,样式表还有媒体文件就可以随便放了,只要在 content.opf 里面填对位置就行。 ## 背时之处 其实非常非常多。各大阅读器对 epub 标准的支持都不一样。有的只是简单支持一下读取内容,样式表都不处理,有的可以渲染出花里胡哨的 css 特效;有的只是把所有标签的文本内容直接露出来,有的可以支持 input 和 script(只是简单测试了一下)~~(在 Reasily 里面甚至还能用 localStorage )~~ 在国内这方面做的比较好的应该是多看,但是多看也只是支持 epub2,而且推行了一套自家的标准,用多看自家的标准也可以做出样式精美的图书(只有多看支持),所以网上也有很多多看精排版的电子书。国内的阅读器对 epub3 标准的支持都不咋样,大概是 txt 就够看了吧。国外的支持 epub3 的要多一些,我测试过的 [测试文件(来自 AZARDI )](http://files.infogridpacific.com/all-in/igp-year5-school-maths.epub) [测试文件(来自 IDPF )](https://github.com/IDPF/epub3-samples/releases/download/20170606/cc-shared-culture.epub) Windows: - [x] AZARDI - [ ] Adobe Digital Edition Android: - [x] Reasily - [x] Lithum - [ ] Anyview - [ ] Duokan - [ ] iReader 在这方面做的最好的感觉应该是 Reasily (强行软广),在简单的测试当中相对问题较少,不禁让人怀疑是不是直接用上了浏览器内核,毕竟又能渲染 MathML 还能用上花里胡哨的 CSS 和 JS,体积还那么小。 我个人挺喜欢epub的,但是似乎不太受欢迎的样子,对于 ePub 标准的介绍的文章也非常少。希望有一天能够看到排版精美的专业类电子书吧。 标签: none
没错,Reasily 跟 Lithium 都是直接使用浏览器来渲染。
Android 有提供 WebView 元件让程序可以使用系统浏览器,也就是Chrome。
CSS 支援性佳的阅读器几乎都是用此方法。
对epub了解仅限于用爬虫下载了小说保存成markdown可以用pandoc转换成epub,在手机上导入阅读器很舒服。
电脑上我是直接用Microsoft Edge的。
我之前设想过爬小说然后用正则过滤掉广告,之后按照事先编好的格式写回XML,再加上样式表组装成epub就可以爬完得到一本精排小说