ePub 是否将 HTML 限制为仅某些子集?

Does ePub restrict HTML to only some subset?

我正在考虑创建一个 ePub reader。到目前为止,我所看到的所有 ePub 文件似乎都非常简单:只有带有大字体标题的文本段落和一些矩形插图图像。所以,我认为 ePub 只提供简单的方式来描述文本内容。

但是 ePub 文件似乎包含很多 HTML 和 CSS。我打开 a sample ePub,它在 <p> 中包含带有 class 属性的文本。这是否意味着它基本上可以像网站存档一样?作者可以使用在创建 HTML 网站时使用的任何高级 formatting/layout 功能吗?如果是这样,我将不得不实现一个完整的网络浏览器来创建一个 ePub reader.

或者,ePub 中允许的 HTML 是否以某种方式仅限于某些 HTML 标签和属性,例如在在线论坛上写作时允许的 HTML。


PS: 发了这个我自己研究了一下,我的结论是前者。我在 Android 市场上尝试过一些著名的 ePub 应用程序,它们在 GUI 方面似乎都很奇怪(意思是,可能是 non-native),虽然似乎没有是了解应用程序是本机还是 web-app 的明确方法,一个技巧是启用布局边界,而这些应用程序在 ePub 视图本身内部没有边界,这意味着它可能是 web-view .

我搜索了 GitHub 的 ePub 查看器,他们似乎都在使用 JavaScript 或 web-view,包括 this Android ePub viewer.

因此,可能那些 ePub 应用程序只是解析 ePub 格式的元数据文件,并且为了呈现图书本身,它们只是将其委托给 web-view 并使用某种 JavaScript框架在web-view.

上添加一个UI

有知道的还请指正

我对以前的 ePub 规范的理解是它是某种网络存档。包含元数据、字体、图像和内容的压缩存档。

以前这个内容只是在一个特制的XHTML format, but it looks like they've also added SVG content documents里。诚然,我已经忘记了 ePub 规范的变化(我没有意识到他们已经与 W3C 合并了努力),但希望上面的规范链接可以让我们了解标准 html5 网页和epub 的期望。


编辑:我还应该提一下,我以前共事过的很多 readers 都有剥离格式而只呈现的坏习惯文本(甚至不是带有嵌入式字体的文本——对于非英语文本来说是一个很大的禁忌)。不确定这是否是 reader 软件“稳健”并且违反 ePub 格式会破坏他们的应用程序,或者其他原因。