验证
—确保您的EPUB没有错误—
为了被视为有效的EPUB,您的电子书必须符合为EPUB定义的标准。这意味着它必须包含某些文件和信息,并且不包含EPUB规范定义的任何错误。为了帮助您检查您的EPUB是否有效,您可以使用以下工具,这些工具可作为Sigil的插件免费提供。
使用FlightCrew进行EPUB验证(仅限EPUB2)
请注意,FlightCrew不再包含在Sigil中,并且已被转换为插件。(如果您按F7,Sigil将只运行非常基本和有限的格式良好性检查。)
在使用FlightCrew之前,你必须下载FlightCrew插件.zip文件并安装它。
要运行FlightCrew,请选择插件>验证>FlightCrew。
这将在您的编辑窗口下方显示一个新窗口,列出它发现的任何问题。运行FlightCrew生成报告后,查看列出的每个问题,然后编辑您的文档以纠正它们。
您应该在每次更改文档时对其进行验证,以确认不再有错误。
常见的验证问题:
请注意,错误以粉红色突出显示,警告以黄色突出显示。
- 此资源存在于OPF <manifest>中,但无法访问(未使用)。
- 这个警告意味着您已经在EPUB中包含了列出的文件,但是您还没有在您的书中使用它。如果你打算使用它,你应该链接到它,否则你可以删除文件。试着搜索你所有的文件或toc.ncx文件名——你应该在搜索的时候去掉路径名,例如,如果错误在Text/Chapter1.html,那么只搜索Chapter1.html
- 此OPS文档可访问,但未出现在OPF<manifest or spine>中。“可访问”是指EPUB中存在指向此资源的某种引用。
- 此错误意味着您在EPUB中有对文件或图像的引用或链接,但该文件不包含在EPUB中。您需要将文件添加到EPUB,或者更正文本中使用的文件名。您通常可以通过搜索所有HTML文件中列出的文件名来找到它们。您可能还需要重新生成或更新您的目录。
- ID值“SOMEIDNAME”不唯一
- 此错误意味着您的EPUB中有一个名为SOMEIDNAME的ID被定义了多次。通常这些是在标题或脚注中,可能是由复制、粘贴或合并引起的。您可以通过在所有HTML文件中搜索列出的ID名称来找到它们,并更改它们,使所有ID都不同于所有其他ID。如果问题出现在标题中,并且您已经自动生成了标题,您可以删除ID,下次创建目录时会重新生成这些标题。
- 没有为元素“SOMEELEMENT”声明属性“INVALIDATTRIBUTE”
- 此错误意味着您有一个名为SOMEELEMENT的HTML标记,该标记包含一个INVALIDATTRIBUTE属性,但INVALIDATTRIBUTE对于该标记无效。例如<h2 invalidattribute="test">。这可能是由打字错误或旧版本的HTML造成的。您需要在所有HTML文件中搜索INVALIDATTRIBUTE,并删除、更正或替换每个匹配项。
- 未找到元素“INVALIDELEMENT”的声明
- 此错误意味着您有一个尚未定义的名为INVALIDELEMENT的HTML标记。通常,这只是因为它是无效的,并且是需要更新的旧HTML语法。您需要在所有HTML文件中搜索INVALIDELEMENT,并删除、更正或替换为有效的HTML。
- 元素“INVALIDELEMENT”不允许用于内容模型“(p|d|h2|h3|h4|h5|h6|div|ul|ol|...”
- 此错误意味着您有一个名为INVALIDELEMENT的HTML标记,该标记对于EPUB不是有效的HTML。通常,这是需要更新的旧HTML语法(例如应该使用样式实现的<center>标记)。您需要在所有HTML文件中搜索INVALIDELEMENT,并用有效的HTML删除、更正或替换每个匹配项。
- 值“SOMENAME”是无效的NCName
- 此错误意味着您的ID名称无效。它可能包含空格或其他无效字符。你需要搜索某个名字并更改它。
用W3C进行CSS验证
您还可以使用W3C网站轻松验证CSS样式表文件,方法是选择菜单项。
这将把所有样式表的内容发送到W3C服务,W3C服务将生成任何问题的报告。
您可以通过在图书浏览器中右键单击样式表并选择验证选项来验证单个样式表。
验证是使用在首选项菜单中选择的W3C样式表验证级别完成的()。
使用EpubCheck进行EPUB验证(EPUB2和EPUB3)
FlightCrew确定了EPUB的大多数问题,但它可能无法捕捉到所有问题,也不能用于验证EPUB3图书。
为了验证所有EPUB3,以及作为对epub2的额外检查,您还应该通过EpubCheck程序运行您的EPUB。您可以在线使用或下载该程序的本地版本:
但是将EpubCheck与Sigil结合使用的最佳方式是下载最新版本的EpubCheck插件并安装它,就像本章前面对FlightCrew所做的那样。
Epubcheck的开发是在https://github.com/w3c/epubcheck 完成的。
EpubCheck在您的机器上使用java和最新版本的epubcheck.jar来验证您的EPUB是否符合EPUB规范。
当EpubCheck作为插件安装和使用时,它将在验证窗口中返回错误和警告,就像上面为FlightCrew描述的那样,使用户更容易导航并修复任何错误。
使用设备进行EPUB验证
请记住这一点:您应该始终在尽可能多的设备或程序上测试您的EPUB。
签名:这个人很懒,什么也没有留下!