Browser local edition
EPUB Tools
EPUB Tools 在瀏覽器記憶體中檢查與修復 EPUB 容器,不上傳,也不改寫書籍內容。
- Status
- Live Product Live Product · Browser Local · MIT · Python CLI
- Platform
- Browser · Cloudflare Pages
- Audience
- 需要檢查或修復 EPUB 容器的讀者與出版工作者
01 / Problem
問題與使用情境
EPUB 對 mimetype 位置、壓縮方式與容器結構有固定要求;macOS 垃圾檔或多餘外層資料夾也可能造成拒讀。EPUB Tools 只處理這些容器問題。
02 / Workflow
操作流程
- 01
放入
選取 EPUB/ZIP,或拖入解壓縮的 EPUB 資料夾。
- 02
檢查
檢查 mimetype、container.xml、垃圾檔與外層資料夾。
- 03
修復
重新封裝 mimetype、entry 順序與資料夾結構,並移除 macOS 垃圾檔。
- 04
下載
以 Blob 下載修復結果;原始檔不變。
03 / Functions
已實作功能
- mimetype 檢查(第一個 entry、Stored、內容正確)
- ZIP entry 順序重新封裝
- container.xml 與 rootfile 檢查
- 移除 macOS 垃圾檔(__MACOSX、.DS_Store、._*)
- 解壓縮的 EPUB 資料夾重新封裝成 .epub
- 多餘外層資料夾正規化
- DRM/加密偵測(遇加密拒絕修復)
- 容量限制:100MB 輸入、512MB 展開、10,000 個 entry
- 另有 Python CLI 版:原地修復 + 備份 + 失敗回滾
04 / Interface
公開介面
05 / Architecture
系統與資料流
01 瀏覽器(File API) → 記憶體 → 檢查/修復 → Blob 下載 書籍內容不上傳、不發網路請求
02 無持久儲存 不寫入 localStorage、IndexedDB;重新整理後結果消失
03 Cloudflare Pages 靜態網站部署;工具頁無廣告,部分指南頁可能顯示 AdSense
06 / Data & privacy
資料與隱私邊界
- 書籍只在瀏覽器記憶體處理,不上傳
- 工具頁不發送 fetch/XHR
- 不寫入 localStorage、IndexedDB 或其他持久儲存
- 無 Google OAuth 或帳號系統
07 / Limits
目前限制
- 只處理容器層級問題;不改寫書籍文字或 metadata
- 遇到 DRM 或加密內容會拒絕修復
- 不支援 ZIP64
- 結果只在瀏覽器記憶體,重新整理前需先下載
- 瀏覽器版不覆寫本機檔案;Python 版支援原地修復與備份