标签 EPUB 下的文章

EPUB 文件是使用开放格式发布内容的好方法。

电子书提供了一种随时随地阅读书籍、杂志和其他内容的好方法。读者可以在长途飞行和乘坐火车时享受电子书打发时间。最流行的电子书文件格式是 EPUB 文件,它是“ 电子出版物 electronic publication ”的缩写。 EPUB 文件受到各种电子阅读器的支持,并且是当今电子书出版的有效标准。

EPUB 文件格式基于 XHTML 内容和 XML 元数据的开放标准,包含在 zip 存档中。由于一切都基于开放标准,我们可以使用通用工具来创建或检查 EPUB 文件。让我们探索一个 EPUB 文件以了解更多信息。《C 编程技巧和窍门指南》,于今年早些时候在 Opensource.com 上发布,提供 PDF 或 EPUB 格式。

因为 EPUB 文件是放在 zip 文件中的 XHTML 内容和 XML 元数据,所以你可以用 unzip 命令在命令行检查 EPUB:

$ unzip -l osdc_Jim-Hall_C-Programming-Tips.epub 
Archive: osdc_Jim-Hall_C-Programming-Tips.epub
Length Date Time Name
--------- ---------- ----- ----
20 06-23-2022 00:20 mimetype
8259 06-23-2022 00:20 OEBPS/styles/stylesheet.css
1659 06-23-2022 00:20 OEBPS/toc.xhtml
4460 06-23-2022 00:20 OEBPS/content.opf
44157 06-23-2022 00:20 OEBPS/sections/section0018.xhtml
1242 06-23-2022 00:20 OEBPS/sections/section0002.xhtml
22429 06-23-2022 00:20 OEBPS/sections/section0008.xhtml
[...]
9628 06-23-2022 00:20 OEBPS/sections/section0016.xhtml
748 06-23-2022 00:20 OEBPS/sections/section0001.xhtml
3370 06-23-2022 00:20 OEBPS/toc.ncx
8308 06-23-2022 00:21 OEBPS/images/image0011.png
6598 06-23-2022 00:21 OEBPS/images/image0009.png
[...]
14492 06-23-2022 00:21 OEBPS/images/image0005.png
239 06-23-2022 00:20 META-INF/container.xml
--------- -------
959201 41 files

这个 EPUB 包含很多文件,但其中大部分是内容。要了解 EPUB 文件是如何组合在一起的,请遵循电子书阅读器的流程:

1、电子书阅读器需要验证 EPUB 文件是否真的是 EPUB 文件。他们通过检查 EPUB 存档根目录中的 mimetype 文件来验证文件。该文件仅包含一行描述 EPUB 文件的 MIME 类型:

application/epub+zip

2、为了定位内容,电子书阅读器从 META-INF/container.xml 文件开始。这是一个简短的 XML 文档,指示在哪里可以找到内容。对于此 EPUB 文件,container.xml 文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
  <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
    <rootfiles>
      <rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/>
  </rootfiles>
</container>

为了使 container.xml 文件更易于阅读,我将单行拆分为多行,并添加了一些间距来缩进每行。XML 文件并不关心新行和空格等额外的空白,因此这种额外的间距不会影响 XML 文件。

3、container.xml 文件表示 EPUB 的根从 OEBPS 目录中的 content.opf 文件开始。OPF 扩展名是因为 EPUB 基于 “ 开放打包格式 Open Packaging Format ”,但 content.opf 文件实际上只是另一个 XML 文件。

4、content.opf 文件包含一个完整的 EPUB 内容清单,以及一个有序的目录,以及查找每一章或每一节的引用。这个 EPUB 的 content.opf 文件很长,因此我将在此仅展示一小部分作为示例。

XML 数据包含在 <package> 块中,该块本身具有 <metadata> 块、<manifest> 数据和包含电子书目录的 <spine> 块:

<?xml version="1.0" encoding="UTF-8"?>
<package unique-identifier="unique-identifier" version="3.0" xmlns="http://www.idpf.org/2007/opf" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:opf="http://www.idpf.org/2007/opf">
  <metadata>
    <dc:identifier id="unique-identifier">osdc002</dc:identifier>
    <dc:title>Tips and Tricks for C Programming</dc:title>
    <dc:creator>Jim Hall</dc:creator>
    <dc:language>English</dc:language>
    <meta property="dcterms:modified">2022-06-23T12:09:13Z</meta>
    <meta content="LibreOffice/7.3.0.3$Linux_X86_64 LibreOffice_project/0f246aa12d0eee4a0f7adcefbf7c878fc2238db3 (libepubgen/0.1.1)" name="generator"/>
  </metadata>
  <manifest>
    ...
    <item href="sections/section0001.xhtml" id="section0001" media-type="application/xhtml+xml"/>
    <item href="images/image0003.png" id="image0003" media-type="image/png"/>
    <item href="styles/stylesheet.css" id="stylesheet.css" media-type="text/css"/>
    <item href="toc.ncx" id="toc.ncx" media-type="application/x-dtbncx+xml"/>
    ...
  </manifest>
  <spine toc="toc.ncx">
    <itemref idref="section0001"/>
    <itemref idref="section0002"/>
    <itemref idref="section0003"/>
    ...
  </spine>
</package>

你可以把数据匹配起来,看看在哪里可以找到每个部分。EPUB 阅读器就是这样做的。例如,目录中的第一项引用了 section0001,它在清单中被定义为位于 sections/section0001.xhtml 文件中。该文件的名称不需要与 idref 条目相同,但 LibreOffice Writer 的自动程序就是这样创建该文件的。(你可以在元数据中看到,这个 EPUB 是在 Linux 上用 LibreOffice 7.3.0.3 版本创建的,它可以将内容导出为 EPUB 文件。)

EPUB 格式

EPUB 文件是一种使用开放格式发布内容的好方法。EPUB 文件格式是 XML 元数据与 XHTML 内容,包含在一个 zip 文件内。虽然大多数技术作家使用工具来创建 EPUB 文件,因为 EPUB 是基于开放标准,意味着你可以使用其他方式创建自己的 EPUB 文件。


via: https://opensource.com/article/22/8/epub-file

作者:Jim Hall 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Kindle 将支持 EPUB 格式的电子书

亚马逊 Kindle 一直不支持 EPUB 格式,而是使用它自己的专有格式。对于那些只依赖 Kindle 电子阅读器和应用程序,并且只从亚马逊购买电子书的人来说,这并不是一个问题。但是市场上有无数的电子阅读器都支持 EPUB 电子书文件格式。据报道,从 2022 年底开始,用户将能够通过电子邮件或应用程序将 EPUB 文件发送到他们的设备上。Kindle 仍然不能原生加载 EPUB 文件,而是会在服务器端自动将 EPUB 转换为 Kindle 支持的格式。

消息来源:gizmodo
老王点评:终于走向了支持开放格式。

俄军从乌克兰盗走的农机被远程锁定

通常人们对农用设备带有的一些远程功能有争议,比如远程锁定功能。据报道,俄罗斯士兵从乌克兰的一家公司盗走了价值近 500 万美元的农用设备,包括两台各价值 30 万美元的联合收割机,并将其运往 700 多英里的车臣。这些农用设备配备了 GPS 跟踪系统,现在它们停留在一家农场一动不动,因为它们被远程锁定了。俄罗斯正试图绕过这些保护。

消息来源:CNN
老王点评:不知道进口的大型农机是不是也会被锁定。

心理健康应用程序的隐私保护非常糟糕

根据 Mozilla 研究人员的一项新分析,按照类别对比,心理健康应用程序对用户的隐私保护比大多数其他类型的应用程序更差。这些应用程序是为精神健康状况等敏感问题而设计的,但却在模糊的隐私政策下收集大量的个人数据,并为广告目的分享用户信息。其中大多数应用程序也有不良的安全做法,尽管包含了深刻的个人信息,却让用户用弱的密码创建账户。研究人员称,“它们的运作就像披着心理健康应用程序外衣的数据吸纳机。”换句话说,披着羊皮的狼。

消息来源:theverge
老王点评:这些应用并不是心理医生,也没有心理医生的职业操守。

Sigil 是一个开源的 Linux、Windows 和 MacOS 上的 EPUB 编辑器。你可以使用 Sigil 创建一个新的 EPUB 格式的电子书,或编辑现有的 EPUB 电子书(以 .epub 扩展结尾的文件)。

如果你感到好奇,EPUB 是一个标准的电子书格式,并被几个数字出版集团认可。它被许多设备和电子阅读器支持,除了亚马逊的 Kindle。

Sigil 让你创建或编辑 EPUB 文件

Sigil 是一个允许你编辑 EPUB 文件的开源软件。当然,你可以从头开始创建一个新的 EPUB 文件。

很多人在 创建或编辑电子书时非常相信 Calibre。它确实是一个完整的工具,它有很多的功能,支持的格式不只是 EPUB 格式。然而,Calibre 有时可能需要过多的资源。

Sigil 只专注于 EPUB 书籍,它有以下功能:

  • 支持 EPUB 2 和 EPUB 3(有一定的限制)
  • 提供代码视图预览
  • 编辑 EPUB 语法
  • 带有多级标题的目录生成器
  • 编辑元数据
  • 拼写检查
  • 支持正则查找和替换
  • 支持导入 EPUB、HTML 文件、图像和样式表
  • 额外插件
  • 多语言支持的接口
  • 支持 Linux、Windows 和 MacOS

Sigil 不是你可以直接输入新书章节的 所见即所得 类型的编辑器。由于 EPUB 依赖于 XML,因此它专注于代码。可以将其视为用于 EPUB 文件的 类似于 VS Code 的代码编辑器。出于这个原因,你应该使用一些其他 开源写作工具,以 epub 格式导出你的文件(如果可能的话),然后在 Sigil 中编辑它。

Sigil 有一个 Wiki 来提供一些安装和使用 Sigil 的文档。

在 Linux 上安装 Sigil

Sigil 是一款跨平台应用,支持 Windows 和 macOS 以及 Linux。它是一个流行的软件,有超过十年的历史。这就是为什么你应该会在你的 Linux 发行版仓库中找到它。只要在你的发行版的软件中心应用中寻找它就可以了。

Sigil in Ubuntu Software Center

你可能需要事先启用 universe 仓库。你也可以在 Ubuntu发行版中使用 apt 命令:

sudo apt install sigil

Sigil 有很多对 Python 库和模块的依赖,因此它下载和安装了大量的包。

我不会列出 Fedora、SUSE、Arch 和其他发行版的命令。你可能已经知道如何使用你的发行版的软件包管理器,对吧?

你的发行版提供的版本不一定是最新的。如果你想要 Sigil 的最新版本,你可以查看它的 GitHub 仓库。

并不适合所有人,当然也不适合用于阅读 ePUB 电子书

我不建议使用 Sigil 阅读电子书。Linux 上有 其他专门的应用来阅读 .epub 文件

如果你是一个必须处理 EPUB 书籍的作家,或者如果你在数字化旧书,并在各种格式间转换,Sigil 可能是值得一试。

我还没有大量使用 过 Sigil,所以我不提供对它的评论。我让你去探索它,并在这里与我们分享你的经验。


via: https://itsfoss.com/sigile-epub-editor/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果说用平板电脑看书尚属主流的话,那么在电脑上读书就非常少见了。专注阅读16世纪的书是非常困难的了,没人希望后台蹦出QQ聊天窗口。但是如果你非要在电脑上打开电子书的话,那么你需要一个电子书阅读软件。大多数出版物支持使用EPUB格式的电子书(电子出版物)。幸运的是,linux上从不缺乏EPUB阅读器类的软件。以下是一些Linux上不错的EPUB阅读软件。

1. Calibre

先从列表中最有名的软件开始: Calibre。Calibre 不仅仅是个阅读器,它还是个电子图书馆。软件支持几乎所有的格式,集成了阅读器、管理器、一个可以从互联网下载书籍封面的元数据编辑器、一个EPUB编辑器、新闻阅读器和一个用来下载电子书的搜索引擎。可喜的是,界面丝毫不逊色专业的阅读软件。唯一的缺点是如果你只想要一个EPUB阅读器的话,这个软件还是太大了。

2. FBReader

FBReader 也是一个图书馆管理软件,但是比Calibre小。界面简洁分为两个部分:左边是文件管理、元数据编辑和下载新书等功能;右边是阅读区。如果你喜欢简洁,这个软件挺不错。我个人非常喜欢这类直观标记书籍和分类的做法。

3. Cool Reader

对于那些只想想看EPUB书内容的用户,我推荐 Cool Reader。遵循Linux应用程序的文化,Cool Reader 做了优化,每次只打开一个EPUB文件,可以使用简单的快捷键进行阅读和导航。由于程序书基于Qt开发的,所以他也遵循Qt的风格,需要大量的设置项。

4. Okular

除了Qt应用程序,如果安装了EPUB库的话,KDE的文档阅读器Okular 也能打开EPUB文件。尽管如此,如果你不是个KDE用户的话,不推荐这个软件。

5. pPub

pPub是个老项目,Github上可以找到这个项目,它最后的更新已经是在两年前了。尽管如此,这个软件还是值得使用的,pPub是用Python编写的,基于GTK3和WebKit,是个简单轻量的软件。界面可能需要一些更新,不够简洁,但是内部却非常好。软件支持JavaScript。所以,谁来捡起这个项目呢?

6. epub

如果你只是想快速简单的查看EPUB文件的内容,不关心任何图形化界面功能的话,最好使用命令行模式打开EPUB。epub 是一个用Python编写的阅读器,可以在终端环境读取EPUB文件的内容。软件可以在章节、页面间切换,没有其他的功能。这是最简洁的EPUB阅读器了。

7. Sigil

最后介绍的这个实际上不是个EPUB阅读器,应该是个独立的编辑器。Sigil 可以提取EPUB文件的内容并将其分离成其他格式:xhtml文本、图像、css,及其他的内容比如音频等。界面比基本的阅读器复杂,但是功能还是比较丰富的。我很喜它的标签体系,如果你对网页比较熟悉的话,这个软件是很好使用的。

总结,有很多的开源的EPUB阅读器,有一些只有最基本的功能, 另外一些功能却太多了。一般来说,我建议你选择一个最合适的使用。如果你有更好的EPUB阅读器,请在评论里告诉我们!


via: http://xmodulo.com/2014/08/good-epub-reader-linux.html

作者:Adrien Brochard 译者:shipsw 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出