设为首页收藏本站繁体中文

轻之国度

 找回密码
 注册(右键在新窗口打开)

QQ登录

只需一步,快速开始

查看: 1064|回复: 3
收起左侧

ePub文档自我支持规范是否可行

[复制链接]
发表于 2020-4-30 15:01 | 显示全部楼层 |阅读模式
        自我支持规范,我指的是将epub的规范或协议直接写入epub文档内,从而得到不需要阅读器更新规范内容,靠epub文档自身就能使用新版规范(现为3.1版本)的文件,在不支持新规范的阅读器中也能使用,阅读器只充当容器的作用。

        有这个想法,是因为之前在贴吧看到有大佬制作了支持3.1规范的epub文档,3.1规范是2017年1月份发布的,但是现在却没有什么阅读器支持(虽然不支持,但还是可以看),因为2.0规范已经基本能完全满足现在的需求,做epub的大佬说lithium上可以用,所以我想下一个试看尝新。下载了大佬做的epub,不过用sigil打开看里边显示的却是3.0版本,用lithium试看之后也没有感觉到和2.0的明显差别。

        我又对比了3.0和2.0的代码,发现内容基本一致,最大的区别就是3.0的content.opf文件开头注明了version="3.0",而2.0里边则是2.0。
2.0里:  <package version="2.0"unique-identifier="BookId"xmlns="http://www.idpf.org/2007/opf">
3.0里:  <package version="3.0"unique-identifier="BookId"xmlns="http://www.idpf.org/2007/opf">
除此之外并无明显区别。

        然后我想在sigil中把2.0改成3.0试试,但是并不成功,保存的时候sigil会自动改回2.0。于是我选择了另一种办法:把.epub格式改为.zip,解压,用记事本打开.opf文件,把2.0改成3.0,保存,再把整个文件夹压缩回.zip,修改格式为.epub,再用sigil打开,果然显示成了3.0。但是用sigil打开的时候提示有错误,忽略后还能打开,而且icecream和多看打不开,不过静读天下倒是能打开,排版和原来一样,没有错乱,也不会出现乱码,用QQ传输文件后直接在QQ中也能打开,同样没排版错误和乱码。在sigil中查看文件内容,发现多了nav.xhtml和sgc-nav.css两个文件,里边没什么有用的内容,但是影响观感还删不掉。除此之外在.opf文件里还多了一个精确到秒的时间戳    <metaproperty="dcterms:modified">2020-04-30T12:57:02Z</meta>,在本来就是3.0的epub里也有。

       .opf文件里开头部分应该是个引用格式,引用的就是阅读器里的epub规范,就像编程时会用头文件调用函数库。所以如果修改引用路径,并且在规范中同样进行修改适配,不是就可以直接在一个epub文档内引用规范了吗?感觉上是可行的。当然了,这是个技术活,我水平不行,只能提供一个想法,真正要做还是需要技术大佬,没准已经有大佬在做了呢。

发表于 2020-4-30 16:57 | 显示全部楼层
都3.2了啊,不要自己一个人瞎猜,有不明白的去查标准,类似
http://idpf.org/epub/30/spec/epub30-publications.html
https://www.w3.org/publishing/epub32/epub-spec.html
这种地方

3.0在元数据定义写法有很多不一样,目录完全新写法只不过可以带个ncx兼容2.0阅读系统,并且有附加选项可以规定展开页面的布局。
sigil支持3.0,在设置里改,新建文档就会变。

namespace引用是协议,是约定,是阅读系统和文档商量好了咱要怎么呈现,在epub文档单方面自嗨没有一点用处
 楼主| 发表于 2020-4-30 19:54 | 显示全部楼层
Aeroblast 发表于 2020-4-30 16:57
都3.2了啊,不要自己一个人瞎猜,有不明白的去查标准,类似
http://idpf.org/epub/30/spec/epub30-publica ...

其实规范的版本没太大关系,我的意思是能不能把namespace引用的内容(如何显示之类的)放进epub文件里边,然后当阅读器不支持较新的规范的时候,就可以用文件自身带的作为补充,这样最后做出来的文件可能不是epub格式,而是一种新的格式,但是显示效果和在支持新版规范的阅读器中一样。我想知道这种方法是否可行。
发表于 2020-4-30 20:53 | 显示全部楼层
xlk 发表于 2020-4-30 19:54
其实规范的版本没太大关系,我的意思是能不能把namespace引用的内容(如何显示之类的)放进epub文件里边 ...

不可行。
你看过规范规定了什么吗?比如加个新资源格式,你怎么引用解析的方法?引用个dll?
如果只是外部资源,那epub规范已经有了,自己去查Foreign Resources相关。但规范是规定方法的,对应的是程序,引入外部程序的风险、成本都是不值得的。

不用想那么多,这些玩意多数是搬运新web技术,外部资源引用的细节规范,给视障弄点便利性,没人用的标签属性废一废什么的,跟你看个小说八竿子打不着。

本版积分规则

手机版|Archiver|轻之国度

JS of wanmeiff.com and vcpic.com Please keep this copyright information, respect of, thank you!JS of wanmeiff.com and vcpic.com Please keep this copyright information, respect of, thank you!

  

GMT+8, 2024-5-5 18:28

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表