由於之前用Sigil製作電子書時,有些問題,加上鮮少的網誌分享這些Debug的經驗(尤指中文資訊),所以我把我修改的過程簡單地做個紀錄。
首先,先跟大家介紹 ePub Validator(EPUB 中文驗證服務) ,這個 EPUB 驗證服務的網址很多,大多是英文,官方網站及非官方的出版網站都有提供這服務,這邊提供的連結是中文版,畢竟咱們是龍的傳人,故這網站檢示出來的錯誤有中文翻譯可立即幫助如何debug。此外,甚至可以到 EPUBCHECK 下載,目前的 EPUBCHECK 的驗證服務到3.0.1版(2013-05-27釋出),這版本可檢查 EPUB 2.0 跟 3.0 的檔。
接下來是一些我Debug的歷程,做一個統整:
偵測到的版本:EPUB 2.0
驗證結果發現以下的問題:
(註)黃底背景為驗證中文翻譯狀況一、id: heading_id_號碼重複
ERROR
|
OEBPS/toc.ncx
|
201
|
55
|
assertion failed: different playOrder values for
navPoint/navTarget/pageTarget that refer to same target
|
ERROR
|
OEBPS/toc.ncx
|
201
|
55
|
邏輯判斷式失敗: different playOrder
values for navPoint/navTarget/pageTarget that refer to same target
|
通常上面狀況的產生,也會伴隨著下面的錯誤產生。
ERROR
|
-1
|
-1
|
could not parse OEBPS/xhtml/016.xhtml: duplicate
id: heading_id_3
|
|
ERROR
|
-1
|
-1
|
無法剖析 OEBPS/xhtml/016.xhtml: 重覆的id: heading_id_3
|
主要是該檔的某一個xhtml的內容裡,有重複的id: heading_id_號碼,只要把這重複的號碼分別另外取名就可。
以此狀況為例,解決方式如下:
- 先把你的該檔檔名的".epub"改成".zip",然後解壓縮把 mimetype、META-INF、OEBPS 取出來。
- 打開 OEBPS 裡的"toc.ncx"
- 到201行檢查<navPoint id="navPoint-32" playOrder="32">...</navPoint>這段,去檢查你這行<content src="xhtml/016.xhtml#heading_id_3"/>。
你會發現 016.xhtml 的檔裡,每一個 <navPoint...>...</navPoint> 裡頭的這行<content src="xhtml/016.xhtml#heading_id_3"/>的id數字會有很多個3,這就是系統所指的重覆的id: heading_id_3,如圖1-1。
ps. 通常你的標題階層越多,這巢狀的構造會越巢。 - 發現這些重複數字後,把這些重複的3賦予新的數字,如圖1-2。
- 然後再把這三個檔重新壓縮成一個zip檔(切記不要用rar),再把".zip"檔名改回".epub",然後再用 Sigil 開啟,並到 016.xhtml 的檔裡,用 code view 把重複的<h4 class="center" id="heading_id_3">...</h4>分別賦予新的號碼,如下圖1-3改成1-4。
- 恭喜你除掉了這個bug!
圖1-1 號碼重複
圖1-2 賦予新號碼
圖1-3 號碼重複
圖1-4 賦予新號碼
切記:一個xhtml檔只能有一個專屬的id: heading_id_號碼。
狀況二、CSS註解的位置有誤
WARNING
|
OEBPS/css/Style0001.css
|
23
|
-1
|
Token ' 版權頁專用 ' not allowed here
|
WARNING
|
OEBPS/css/Style0001.css
|
23
|
-1
|
Token ' 版權頁專用 ' 不被允許在這裡
|
主要是該檔的CSS裡,註解的位置跑到宣告的式子裡,只要把註解的位置喬一下就可以。
以此狀況為例,解決方式如下:
- 用 Sigil 打開該檔,並打開 css 資料夾下的 css 檔(原先Sigil預設的css檔名會是Style0001.css)。
- 把註解的位置改一下,如圖1-5和1-6。
- 恭喜你除掉了這個bug!
圖1-5 原先註解位置
圖1-6 更改後的註解位置
狀況三、圖片遺失
ERROR
|
OEBPS/xhtml/069.xhtml
|
59
|
209
|
'OEBPS/Images/pg013-63.jpg': referenced resource
missing in the package.
|
ERROR
|
OEBPS/xhtml/069.xhtml
|
59
|
209
|
'OEBPS/Images/pg013-63.jpg': package中的參照資源遺失.
|
這裡主要所指的是圖片遺失,此時所遺失的圖片內容會變成問號,問號代表抓不到該檔裡的 image 資料夾裡之圖片。欲解決此問題,以此狀況為例,有兩種做法:
- 把這問號圖刪掉,再重新用 Sigil 的 Insert 的功能插入。
- 將 epub 檔改為 zip 檔解壓縮,並到 OEBPS 裡打開 image 資料夾,將原先的 pg013-63.jpg 放入 image 資料夾,切記檔名要一致,不然依樣會抓不到這檔名,而圖片內容依然呈現問號。
以上是我Debug的過程,其實沒有Debug的話,這檔仍然可以用 Chrome 的Readium 或是在 iPad 的 iBooks 上閱讀,因此你們可能會覺得這檔沒什問題,那為何要去除掉這Bugs呢?!亦或,當我想去除時,又會覺得其實這些蟲子都很細部,或是都是一堆中英文專業術語,該怎去除呢?!故在除這個看似可閱讀但內部又有蟲子的檔時,通常是比較費時的,故在這將一些除蟲的經驗整理整理,供後人乘涼嚕~
有最新的Debug過程,我會再更新,或是另寫一篇補充~
有最新的Debug過程,我會再更新,或是另寫一篇補充~
目前本人遇到一個問題,尚未解開,若有神人知道的話,可以留言告訴我跟我分享解決之道,如下:
ERROR
|
-1
|
-1
|
The file OEBPS/images/oldlitter136.jpg does not
appear to be of type image/jpeg
|
|
ERROR
|
-1
|
-1
|
檔案 OEBPS/images/oldlitter136.jpg 並不屬於型別 : image/jpeg
|
若有神人知道且願意分享的,敝人願詳聞,在此先感恩!
參考網站:
沒有留言:
張貼留言