EPUB 入門指南

單元 1 - 認識 EPUB

EPUB 是 Electronic PUBlication 的縮寫,常見的縮寫名稱也有 ePub 或 epub 。基本上 EPUB 是 ZIP 格式的壓縮檔案

EPUB

ZIP

EPUB 的原始資料包括網頁檔案、多媒體檔案等,所有的原始資料會放在單一資料夾中,再用壓縮軟體以 ZIP 格式壓縮成副檔名 .epub 的 EPUB 檔案,怎麼製作 EPUB 檔案在單元 3 再做介紹,這邊先來討論 EPUB 檔案的組成。

下面以精簡範例篇裡的最精簡的 EPUB 電子書檔案 demo.epub 當例子,以下為在 📁demo 資料夾中的所有檔案及資料夾,名稱前有 📁 符號就是資料夾

由上可以看出, demo.epub 的內容由 mimetype 與其他兩個資料夾 📁META-INF📁OEBPS 所組成, mimetype 為純文字檔案,內容如下

application/epub+zip

內容就以上一行,很簡單,這個 mimetype 檔案存在的目的是要讓系統知道這是個 EPUB 檔案,因此要用閱讀 EPUB 內容的軟體來開啟。

📁META-INF 資料夾裡面只有一個檔案 container.xml ,這是 XML 檔案,內容如下

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

XML 是 eXtensible Markup Language 的縮寫, XML 是早於 HTML 發展的標記語言 (markup language) ,其實 HTML 就是從 XML 簡化來的。標記語言的目的是用標籤圍住所要設定的內容。

雖然說寫 XML 或 HTML 都叫寫 code ,可是 code 通常翻譯成「程式碼」,問題是 XML 及 HTML 都不是程式語言 (programming language) , code 的原意也只有「碼」的意思,避免不是程式語言卻誤用「程式碼」一詞,寫 XML 或 HTML 可稱之為「標記碼」,同樣的道理,寫 CSS 則可稱之為「樣式碼」。

container.xml 的重點只有這一行

<rootfile full-path="OEBPS/metadata.opf" media-type="application/oebps-package+xml"/>

這行設定 metadata.opf 的路徑,此外也設定 EPUB 檔案的 media-typemetadata.opf 是整份 EPUB 文件的中繼資料檔案,內容得記錄所有的資源檔案以及如何閱讀此份 EPUB 文件。

以上兩個檔案在採用本書介紹的 EPUB 結構中都不需要做任何修改。

其他 📁OEBPS 資料夾中放置所有電子書內容的資源檔案

裡頭 cover.png 是電子書封面圖檔, demo.xhtmlstart.xhtml 是內容檔案, toc.xhtmltoc.ncx 是目錄檔案,最後 style.css 是樣式表檔案。

任何 EPUB 電子書都可由這最精簡的 demo.epub 出發,擴充內容及各種多媒體檔案,再由 CSS 設定好樣式表,底下繼續看到 start.xhtml 的內容

以上是用 Brackets 開啟 start.xhtml , Brackets 是專門用來編輯 HTML 及 CSS 檔案的文字編輯器,詳細介紹可參考附錄 - 編輯 HTML 及 CSS 的工具 Brackets

其中最主要就是有 <svg> 元素, <svg> 裡頭的 <img> 用來指定封面圖檔的路徑。

注意 <svg> 裡的屬性 viewBox 要設定成符合圖檔尺寸的值,這樣整個頁面就會顯示整張圖檔。

此外最重要的是要修改 metadata.opftoc.xhtmltoc.ncx ,下一個單元就先來討論這三個檔案。

上一頁 基礎學習篇
回《EPUB 入門指南》目錄
下一頁 單元 2 - 資訊頁與目錄頁
回程式語言教材首頁