NOVEL-smart-merge:EPUB 智慧合併腳本
下載連結
此腳本負責將「舊完整 EPUB」與「差分 EPUB」智慧合併,產生結構乾淨、內容統一、CSS 樣式一致的新 EPUB。特別適用於小說長期更新、反覆合併。
設計上特別針對AozoraEpub3 下載後(AozoraEpub3 能夠選擇只下載指定的最新幾個章節),交由 AiNiee 翻譯,並且採用中日對照模式的EPUB檔案。
這個腳本處理上述檔案時作了以下幾件事:
1.將檔案排版做調整,刪除多餘空行,並且加入讓日文變淡的CSS格式,但這些效果只對AiNiee 翻譯的檔案有效。
2.讀取兩個EPUB檔案後合併成一個,目錄也重新製作。
3.如果偵測到AozoraEpub3抓取檔案時會加入的扉頁,也就是小說簡介,會自動刪除重複的檔案,(因為後續產生的差分新連載EPUB每一次都會有這部分,不刪除重複非常煩人),原則上預設保留差分檔案裡的,以確保EPUB裡面小說簡介是作者的最新內容。
4.如果偵測到AozoraEpub3抓取檔案時自動加入的紀錄頁,同樣會刪除舊的,只保留最新那個。
一、環境需求
請先安裝以下 Python 套件:
不需要其他額外套件(例如 chardet,不需要)。
Python 版本建議:3.8 以上。
二、檔案準備方式
將以下檔案放到同一個資料夾(INPUT_DIR 指向的位置):
-
舊完整 EPUB
檔名結尾必須為: -
差分 EPUB(通常是最新更新章節)
檔名結尾必須為:
例如:
完成後,腳本會在同資料夾輸出:
三、設定參數(可在腳本前段自行修改)
腳本前方的「配置區」可調整資料夾與行為:
其他常用設定:
-
AUTO_DETECT_FRONT_MATTER = True
自動偵測扉頁。若有需要用固定檔名判斷,可設 False。 -
REMOVE_EMPTY_LINES = True
自動清理<p><br/></p>空行。 -
LANG_ORDER = 'AUTO'
雙語內容自動判斷中日順序。 -
TOC_TITLE_MODE = 'JA_ONLY'
目錄標題預設採用日文。
四、使用流程
-
確認 INPUT_DIR、OUTPUT_DIR 設定正確
-
確認舊檔與差分檔命名符合規則
-
執行腳本:
-
程式會自動:
-
載入舊 EPUB、差分 EPUB
-
分析章節與 TOC
-
建立統一 CSS
-
修正圖片路徑並重新命名圖片
-
清理空行、處理雙語段落
-
建立新的 spine 與 toc
-
生成新的 EPUB
-
-
完成後可於 OUTPUT_DIR 找到:
五、輸出特性
生成的 EPUB 具備以下特點:
-
統一 CSS(清爽、可控、支援滿版圖片)
-
章節重新命名與排序
-
front_xx.xhtml
-
chapter_xxxx.xhtml
-
record.xhtml(若存在)
-
-
圖片全部重新整理
存放於image/img_0001.jpg等新路徑 -
TOC 清理與去重
保證結構不會越合併越亂 -
自動偵測扉頁(可關閉)
-
日中對照合併顯示
依配置放置於<span lang="zh">與<span lang="ja">
六、常見問題
1. 找不到差分檔案
請確認差分 EPUB 名稱符合:
2. EPUBCheck 錯誤是否會產生?
本工具會:
-
移除危險或不規範的標記
-
清理空行
-
統一 HTML 結構
一般情況下可通過 EPUBCheck。
七、完整自動批次
腳本預設支援批次處理,只要同資料夾內有多組:
一次執行就會全部合併。

