告诉HN:今天我学习了epub只是html / css

2021-04-08 23:04:47

跳转到导航跳转到搜索epub是一种使用&#34的电子书文件格式; .pub"文件扩展名。该术语对于电子出版物而言是短暂的,有时是风格的ePUB。 EPUB由许多电子阅读器支持,并且兼容软件可用于大多数智能手机,平板电脑和计算机。 EPUB是国际数字出版论坛(IDPF)发布的技术标准。它在2007年9月成为IDPF的官方标准,取代了旧的开放式电子书标准。 [2]

书籍行业学习组赞同ePUB 3作为包装内容选择的格式,并表示全球书籍出版业应在单一标准周围反弹。 [3] EPUB格式作为归档文件实现,该文件包括携带内容的XHTML文件,以及图像和其他支持文件。 EPUB是支持最广泛的供应商无关的XML(与PDF)的电子书格式;也就是说,除了Kindle之外,几乎所有硬件读者都支持它。 [4]

开放电子书出版结构的继承人,EPUB 2.0于2007年10月批准,[5]在2010年9月批准的维护更新(2.0.1)。[6]

2011年10月,EPUB 3.0规范变得有效,由2014年6月的小型维护更新(3.0.1)取代。[7]新的主要功能包括支持精确布局或专门的格式(固定布局文件),例如漫画书籍,[8]和MathML支持。目前的EPUB版本为3.2,效果于2019年5月8日起。[9](文本)格式规范接受重组[10]和清理;格式支持远程托管的资源和新字体格式(WOFF 2.0和SFNT)[11]并使用更多纯HTML和CSS。 [12]

2016年5月IDPF成员批准了万维网联盟(W3C)合并,[13]"全面对齐出版业和核心Web技术" [14]

EPUB 2.0于2007年10月获得批准,旨在澄清和澄清和纠正在2010年9月批准的规范中的勘误表的维护更新。[6] EPUB版本2.0.1由三种规格组成:

EPUB内部使用XHTML或DTBook(Daisy Consortium提供的XML标准)来表示内容文档的文本和结构,以及提供布局和格式的CSS子集。 XML用于创建文档清单,内容表和EPUB元数据。最后,文件将文件捆绑在zip文件中作为包装格式。

EPUB文件使用XHTML 1.1(或DTBook)来构建版本2.0.1的书的内容。这与以前的版本(OEBPS 1.2及更早版本)不同,它使用了XHTML的子集。然而,某些元素有一些限制。 EPUB中的XHTML文档的MIMETYPE是应用程序/ XHTML + XML。 [15] [A]

使用CSS 2.0的子集进行造型和布局,称为OPS样式表。此专业语法要求读取系统仅支持CSS属性的一部分,并添加一些自定义属性。自定义属性包括OEB-PAGE-HEAD,OEB页面和OEB列号。可以使用@ font-face属性来完成字体嵌入,以及在opf中的字体文件,包括opf' scannment(见下文)。 EPUB中的CSS文档的Mimetype是Text / CSS。 [15] [b]

EPUB还要求使用MIMETYPES IMAGE / PNG,IMAGE / JPEG,IMAGE / GIF,IMAGE / SVG + XML来支持PNG,JPEG,GIF和SVG图像。允许其他媒体类型,但创建者必须使用支持的类型包含备用演变。 [15]对于所有必需的MIMETYPES的表,请参见规范的第1.3.7节。

Unicode是必需的,内容生产者必须使用UTF-8或UTF-16编码。 [15]这是为了支持国际和多语种书籍。但是,读取系统不需要提供显示每个Unicode字符所需的字体,尽管它们需要至少显示无法完全显示的字符的占位符。 [15]

<?XML版本=" 1.0"编码=" UTF-8" ?> <!doctype html public" - // w3c // dtd xhtml 1.1 // en" " http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd"> < HTML XMLNS =" http://www.w3.org/1999/xhtml" XML:Lang =" en" > <头> <元HTTP-EQUIV ="内容类型"内容="应用程序/ XHTML + XML; charset = UTF-8" /> <标题>骄傲和偏见< / titudice> <链接rel ="样式表" href =" css / main.css" type ="文本/ css" /> < / head> <身体> ...< / body> < / html>

OPF规范' s的目的是" [定义]操作ops发布的各种组件被捆绑在一起并向电子出版物提供额外的结构和语义。" [16]这是由两个XML文件完成的,其中包含扩展.opf和.ncx。

OPF文件,传统上名为Content.opf,容纳EPUB书籍和#39; S元数据,文件清单和线性读取顺序。此文件具有根元素包和四个子元素:元数据,清单,脊椎和指南。此外,包节点必须具有唯一标识符属性。 .opf文件' s mimetype是应用程序/ OEBPS-Package + XML。 [16]

元数据元素包含特定EPUB文件的所有元数据信息。需要三个元数据标记(尽管有更多可用):标题,语言和标识符。标题包含本书的标题,语言包含书籍的语言'在RFC 3066格式或其继承者中的内容,例如较新的RFC 4646和标识符包含这本书的唯一标识符,例如其ISBN或A. URL。标识符' s id属性应等于来自包元素的唯一标识符属性。 [16] [c]

清单元素列出了包中包含的所有文件。每个文件由项目元素表示,并且具有属性ID,HREF,Media-Type。此处应列出所有XHTML(内容文档),样式表,图像或其他媒体,嵌入式字体和NCX文件。只有.opf文件本身,container.xml,也不应包括Mimetype文件。 [16]

脊柱元素以其线性读取顺序列出所有XHTML内容文档。此外,也必须列出可以通过链接或内容表到达的任何内容文档。脊柱的TOC属性必须包含清单中列出的NCX文件的ID。每个itemref元素' s idref设置为其各自内容文档的ID。 [16]

引导元件是用于识别本书的基本结构组件的可选元素。每个引用元素都有属性类型,标题,href。在HREF中引用的文件必须列在清单中,并且允许具有元素标识符(例如,示例中的#IFIGURE)。 [16] [D]

<?xml版本=" 1.0"?> <包版=" 2.0" XMLNS =" http://www.idpf.org/2007/opf"唯一标识符=" Bookid" > <元数据xmlns:dc =" http://purl.org/dc/elements/1.1/" XMLNS:OPF =" http://www.idpf.org/2007/opf" > < dc:title>骄傲和偏见< / dc:title> < dc:language> en< / dc:language> < dc:标识符ID =" Bookid" opf:方案=" ISBN" > 123456789x< / dc:标识符> < dc:creator opf:file-as ="奥斯汀,简" opf:角色=" aut" >简奥斯汀< / dc:creator> < / metadata> <张明的> <项目id ="第1章和#34; href ="第1章.xhtml" Media-Type ="应用程序/ XHTML + XML" /> <项目id ="附录" href ="附录.xhtml" Media-Type ="应用程序/ XHTML + XML" /> <项目id ="样式表" href =" style.css" Media-Type ="文本/ CSS" /> <项目id =" ch1-pic" href =" ch1-pic.png"媒体型="图像/ png" /> <项目id =" myfont" href =" css / myfont.otf" Media-Type ="应用程序/ X-Font-Opentype" /> <项目id =" ncx" href =" toc.ncx"媒体类型="应用程序/ X-DTBNCX + XML" /> < /张皮; <脊柱toc =" ncx" > < itemref idref ="第1章和#34; /> < itemref idref ="附录" /> < / spine> < Guide> <参考类型=" loi"标题="插图列表" href ="附录.xhtml#数字" /> < /指南> < /包装>

传统上名为toc.ncx的NCX文件(XML的导航控制文件)包含EPUB文件的分层表。为NCX规范开发用于数字通知书(DTB),由菊花联盟维护,并不是EPUB规范的一部分。 NCX文件具有Mimetype应用程序/ X-DTBNCX + XML。

这里的说明是医院,Docauthor和Meta name =" dtb:uid"元素应与OPF文件中的模拟相匹配。此外,元名称=" DTB:深度"元素设置为等于NavMap元素的深度。可以嵌套NavPoint元素以创建分层目录。 Navlabel' s内容是通过读取使用.ncx的系统生成的内容表中的文本。 NavPoint' s内容元素指向清单中列出的内容文档,也可以包括元素标识符(例如#section1)。 [16] [18]

EPUB中使用的NCX规范的某些例外的描述在规范的第2.4.1节中。 NCX的完整规范可以在数字谈书的规格的第8节中找到。 [18]

<?XML版本=" 1.0"编码=" UTF-8"?> <!doctype ncx public" - // niso // dtd ncx 2005-1 // en" " http://www.daisy.org/z3986/2005/ncx-2005-1.dtd"> < ncx版本=" 2005-1" XML:Lang =" en" XMLNS =" http://www.daisy.org/z3986/2005/ncx/" > <头部> <! - 所有NCX文档都需要以下四个元数据项,包括符合OPS 2.0 - &gt的放宽约束的文档。 < meta name =" dtb:uid"内容=" 123456789x" /> <! - 与.opf相同 - > < meta name =" dtb:深度"内容=" 1" /> <! - 1或更高 - > < meta name =" dtb:totalpageCount"内容=" 0" /> <! - 必须是0 - > < meta name =" dtb:maxpagenumber"内容=" 0" /> <! - 必须是0 - > < / head> <医学医院> < text>骄傲和偏见< / text> < / doltitle> < docauthor> < text>奥斯汀,简> < / docauthor> < navmap> < navpoint class ="章节" ID ="第1章和#34; PlayOrder =" 1" > < navlabel>< text>第1章< / text>< / navlabel> <内容src ="第1章.Xhtml" /> < / navpoint> < / navmap> < / ncx>

EPUB文件是一组符合OPS / OPF标准的文件,并在zip文件中包装。 [19] OCF指定如何在zip中组织这些文件,并定义必须包含的两个附加文件。

MimeType文件必须是ASCII中的文本文档,其中包含字符串应用程序/ epub + zip。它还必须解压缩,未加密,以及zip存档中的第一个文件。此文件为应用程序提供更可靠的方法,以识别文件的Mimetype而不是.pub扩展。 [17]

此外,必须有一个名为meta-inf的文件夹,其中包含所需的文件container.xml。此XML文件指向定义本书内容的文件。这是opf文件,但允许允许其他替代的rootfile元素。 [17]

除了MimeType和Meta-Inf / Container.xml之外,其他文件(OPF,NCX,XHTML,CSS和图像文件)传统上放在名为OEBPS的目录中。

EPUB 3.0推荐规范于2011年10月11日批准。2014年6月26日,2014年6月26日EPUB 3.0.1被批准为EPUB 3.0的次要维护更新。 EPUB 3.0取代了之前的2.0.1版。 [e]

EPUB内容文档3.0,它定义了用于EPUB出版物的上下文的XHTML,SVG和CSS的配置文件

EPUB打开容器格式(OCF)3.0,它定义了用于将一组相关资源封装到单个文件(ZIP)EPUB容器中的文件格式和处理模型。

EPUB媒体覆盖3.0,它定义了一种格式和用于同步文本和音频的处理模型

虽然适用于以文本为中心的书籍,但EPUB对需要精确布局或专业格式的出版物,而不是漫画书籍。 [8]

阻碍EPUB的主要问题是大多数技术出版物的使用是对格式化为MathML的方程的支持缺乏支持。它们被包含为位图或SVG图像,防止屏幕读取器正确处理和与计算机代数系统的交互。对MathML的支持包含在EPUB 3.0规范中。

对EPUB的其他批评是缺乏关于在EPUB书籍内或之间缺乏细节的规范,以及其缺乏注释规范。通过使用ZIP文件作为用于EPUB的容器来阻碍这种链接。此外,如果通过使用EPUB和#39的内部结构标记(上面提到的OPF规范)或通过ZIP和#39; s文件结构直接链接,则目前不清楚是否更好。 [21]缺乏注释EPUB书籍的标准化方式导致共享和转移注释难以困难,因此限制EPUB的使用场景,特别是在教育环境中,因为它不能提供与网络相当的相互作用级别。 [22]

2014年11月,EPUB 3.0由国际标准组织作为ISO / IEC TS 30135(第1-7部分)出版。 [24]

2020年1月,EPUB 3.0.1由国际标准组织作为ISO / IEC 23736(第1-6部分)出版。 [25]

EPUB 3.2于2018年宣布,[26],最终规范于2019年发布。[27]一个值得注意的变化是去除CSS的专业子集,从而使用非EPUB预混物性能。对HTML和SVG标准的引用也更新为"最新版本可用"而不是及时的固定版本。 [28]

固定布局内容:[29]预先分化的内容对于某些类型的高度设计内容可用,例如仅针对较大屏幕的插图书籍,例如片剂。 [30]

与HTML网站一样,格式支持内联光栅和矢量图像,元数据和CSS样式。

EPUB文件可以可选地包含DRM作为附加图层,但规范不需要它。 [32]此外,规范没有命名任何特定的DRM系统要使用,因此发布者可以选择DRM方案他们喜欢。但是,未来版本的EPUB(特别OCF)可以指定DRM的格式。 [17]

EPUB规范不强制执行或建议特定的DRM方案。这可能会影响各种DRM系统对设备的支持水平以及购买的电子书的可移植性。因此,这种DRM不兼容可以沿DRM系统的线段对EPUB格式进行分割,破坏单个标准格式的优点并使消费者混淆。 [35] [36] [37] [38] [38]

DRMED EPUB文件必须包含在ZIP容器的根级别的Meta-Inf目录中称为权限.xml的文件。 [17] [需要澄清]

EPUB广泛用于软件读者,例如Android和IOS和MacOS上的Apple书籍上的Google播放书籍,但不是由亚马逊Kindle' e-读者或其他平台的相关应用程序。 Kindle主要使用Mobipocket(Mobi)格式,或他们的专有格式AZW,AZW3或KFX。 IBooks还支持基于EPUB格式的专有IBook格式,而是取决于IBooks应用程序的代码。 [39]

EPUB是电子数据交换的流行格式,因为它可以是一个开放的格式,而不是HTML,而不是Kindle Reader的专有格式。 PAMATOM EPUB PUBLIC DOAM和公开许可内容包括PROJECT Gutenberg,PubMed Central,Scielo等。

EPUB需要读者支持HTML5,JavaScript,CSS,SVG格式,使EPUB读者使用与Web浏览器相同的技术。

这种格式与各种类型的安全问题和隐私违反行为相关联。网信标,CSRF,XSHM由于它们的复杂性和灵活性。

这种漏洞可用于在EPUB文件[40] [41] [42]上实现Web跟踪和跨设备跟踪[42] [42]

安全研究人员还确定了导致本地文件和上载其他用户数据的攻击。 [43] [44]

作者需要意识到EPUB发布中的脚本可以创建与Web浏览器中的脚本不同的安全注意事项。例如,典型的相同原点策略不适用于已下载到用户'本地系统的内容。因此,强烈建议脚本限于容器约束上下文[45]

EPUB文件是一个存档,其中包含一个人的网站。它包括HTML文件,图像,CSS样式表和其他资产。它还包含元数据。 EPUB 3.2是最新版本。通过使用HTML5,出版物可以包含视频,音频和交互性,就像Web浏览器中的网站一样。 [30]

EPUB发布作为单个文件传递。此文件是一个未加密的zipped存档,包含一组相互联系的资源。 [46]

OCF(打开容器格式)抽象容器定义了容器内容的文件系统模型。文件系统模型使用单个公共根目录用于容器中的所有内容。出版物的所有(非远程)资源都是由容器' s根目录展示的目录树中,但epub要求此特定文件系统结构。文件系统模型包括名为meta-inf的强制目录,它是容器' s根目录的直接子目录。 meta-inf存储container.xml。

存档中的第一个文件必须是Mimetype文件。必须是未加密和未压缩的,以便非ZIP实用程序可以读取MIMetype。 MimeType文件必须是包含字符串&#34的ASCII文件;应用程序/ epub + zip"此文件为应用程序提供更可靠的方法,以识别文件的Mimetype而不是.pub扩展。 [46]

必须有一个包含container.xml的元inf目录。此文件指向定义书籍内容的文件,opf文件,但允许其他备用rootfile元素。除了MimeType和Meta-Inf / Container.xml之外,其他文件(OPF,NCX,XHTML,CSS和图像文件)传统上放在名为OEBP的目录中。一个示例container.xml:

列出所有发布资源的一个包文档。此文件应使用文件扩展名.opf。它包含元数据,清单,后退链,绑定和脊柱。这是定义默认读取顺序的有序序列的ID引用。

内容文档包括:[48] HTML 5内容,导航文档,SVG文档,脚本内容文档和固定布局文档.Contents还包括CSS和PLS文档。导航文件取代了EPUB 2中使用的NCX语法。

具有同步音频旁白的书籍在EPUB 3中创建了通过使用媒体覆盖文档来描述预先录制的音频叙述的时间以及Rela的时间 ......