convertor/CHANGELOG.md
Your Name 27ffdee6f4 fix: Docker image size and add download retry mechanism
## Bug Fixes
- Fix standard image size issue (was ~1.5GB, should be 8-12GB)
- Add strict model validation during build
- Add retry mechanism (--retry 3 --retry-delay 5) to all curl downloads

## Documentation
- Clarify version terminology: Standard (一般版), Extended (擴充版), Lite (Lite版)
- Remove duplicate docs/環境變數總覽.md
- Improve environment variable documentation structure
- Add quick reference tables for environment variables

## Build
- Explicitly specify 'file: Dockerfile' in release.yml
- Use 'buildcache-full' cache key to prevent cross-pollution
2026-01-24 21:31:11 +08:00

31 KiB
Raw Blame History

Changelog

0.1.16 (2026-01-24)

一般版 Docker Image 修復版本,確保開箱即用。

🐛 Bug Fixes

  • 一般版 Docker Image 大小修復:修復 0.1.15 版本 image 體積異常問題

    • 問題:一般版 image 僅約 1.5-2 GB應為 8-12 GB
    • 原因release.yml 未明確指定 Dockerfile可能導致 cache 問題
    • 修復:明確指定 file: Dockerfile 並使用獨立的 cache key
  • 嚴格模型驗證:新增 build-time 模型驗證機制

    • 若 ONNX 模型缺失或過小build 將失敗
    • 若 PDFMathTranslate 字型數量不足build 將失敗
    • 確保發布的 image 一定包含所有必要模型
  • 下載重試機制:所有 curl 下載增加重試機制

    • 新增 --retry 3 --retry-delay 5 --retry-all-errors 參數
    • 覆蓋範圍Bun、dasel、resvg、vtracer、ONNX 模型、字型檔案

📦 Build

  • release.yml 改進
    • 新增 file: Dockerfile 明確指定使用一般版 Dockerfile
    • 使用 buildcache-full 作為 cache key避免與 Lite 版交叉污染
  • Dockerfile 強化
    • 版本號更新為 v0.1.16
    • 新增嚴格模型驗證區塊(驗證 ONNX、字型、MinerU
    • 驗證失敗時 build 將中止並報錯
    • 所有下載均添加重試機制

📚 Documentation

  • 版本術語統一
    • 一般版Standard官方預建版 convertx-cn:latest,約 8-12 GB開箱即用
    • 擴充版Extended使用 Dockerfile.full 自建,支援 65 種 OCR 語言,>10 GB
    • Lite 版Lightweightconvertx-cn:latest-lite,約 1.2 GB基本轉檔
  • 環境變數文檔重整
    • 刪除重複的 docs/環境變數總覽.md
    • 改進 docs/配置設定/環境變數.md 結構
    • 新增快速參考表分類安全性、一般、轉換、PDF翻譯
  • Docker 部署指南更新
    • 新增版本對照表
    • 明確三種版本的區別與適用場景

0.1.15 (2026-01-24)

Docker 基礎架構優化版本,新增 Lite 版 Docker Image。

Features

  • Lite 版 Docker Image:新增輕量版 Docker Image適合資源受限環境
    • 目標體積 < 1.5 GBvs 一般版 8-12 GB
    • 保留日常最常用功能LibreOffice、FFmpeg、Pandoc、Ghostscript、qpdf
    • 移除 AI/OCR/翻譯等進階功能
    • 支援 amd64 和 arm64 架構
    • Runtime 憑證初始化(容器首次啟動時自動產生簽章憑證)

📦 Build

  • Docker Build Lite Workflow:新增 docker-build-lite.yml 自動觸發 Lite 版構建
    • Tag 格式:v*.*.*-lite(如 v0.1.15-lite
    • 動態版本號修改Build-time 自動加上 -lite 後綴)
    • 分開處理 GHCR 和 Docker Hub manifest 推送,避免跨 registry 問題

🐛 Bug Fixes

  • Lite 版 endesive 問題:移除 build-time endesive 安裝,改用 runtime 初始化
    • 解決 ARM64 架構上 pykcs11 編譯失敗的問題
    • PDF 簽章功能改為可選(需使用者自行安裝 endesive 或使用一般版)

0.1.14 (2026-01-23)

OCR 功能強化版本,新增 OCRmyPDF 轉換引擎。

Features

  • OCRmyPDF 轉換引擎:新增獨立的 OCR 轉換引擎,支援將掃描版 PDF 轉換為可搜尋 PDF
    • 支援 7 種語言:英文、繁體中文、簡體中文、日文、韓文、德文、法文
    • 與 PDFMathTranslate 風格一致的 UI 格式(pdf-enpdf-zh-TW 等)
    • 自動偵測頁面方向並旋轉
    • 自動校正傾斜
    • 跳過已有文字層的頁面
    • 詳細的5階段處理進度輸出

📦 Build

  • Dockerfile:安裝 ocrmypdf 與 Tesseract OCR 語言包(階段 9/11

📚 Documentation

  • 更新 OCR 功能文件,說明 OCRmyPDF 轉換引擎用法

0.1.13 (2026-01-23)

工作流程優化與測試修復版本。

📦 CI/CD

  • 翻譯測試優化改用免費翻譯服務Google/Bing移除付費 API 金鑰依賴
  • 自動化測試:翻譯測試現在會在 push 時自動執行

🧪 Testing

  • Inkscape 測試修復:更新測試以配合 xvfb-run 包裝器
  • format-matrix 測試修復:修復超時參數中的 sampled 未定義錯誤

0.1.12 (2026-01-23)

測試與品質強化版本,大幅提升 CI/CD 可靠性與測試覆蓋率。

🧪 Testing

  • E2E 測試套件:新增完整的 End-to-End 測試架構,覆蓋 21 項轉換流程
  • CI/CD E2E 整合:在 Release 工作流程中加入 E2E 測試驗證
  • Mock 測試優化:重構 E2E 測試架構,移除殘留檔案

🐛 Bug Fixes

  • 帳戶頁面 XSS 修復:使用 <span safe> 包裹翻譯文字,修復 HTML 標籤顯示為純文字的問題
  • Inkscape Headless 模式:使用 xvfb-run 執行 Inkscape解決 Docker 容器內無顯示器的問題
  • Inkscape Export 語法:改用 --export-type--export-filename 參數,確保跨版本相容性
  • bun.lock 同步:修復套件管理器寫入權限問題

📦 CI/CD

  • 模型驗證:新增模型完整性驗證步驟
  • Headless 驗證:新增無頭模式環境檢查
  • Merge 策略:採用 --no-ff 合併策略,保留完整分支歷史

📚 Documentation

  • README 更新:新增測試功能說明與注意事項

0.1.11 (2026-01-22)

穩定性與品質維護版本。

🛡️ Stability & Quality

  • 模型驗證腳本:新增 verify-models.sh 腳本,可在容器內驗證預下載模型完整性
  • Dockerfile 版本標示:明確標註 v0.1.11 版本資訊

🔧 Maintenance

  • 更新工作流程中的 Node.js 和 Bun 版本
  • 調整 CI/CD 依賴項版本
  • 修正工作流程名稱格式
  • 新增遠端服務更新工作流程(透過 Tailscale SSH 更新 Docker 服務)

Quality Assurance

  • 159 個測試全數通過
  • TypeScript / ESLint / Prettier / Knip 檢查全數通過
  • Build 流程驗證完成

0.1.10 (2026-01-21)

在 0.1.10 版本中ConvertX-CN 迎來了多項重大功能擴充與架構強化。這是一個里程碑式的版本,為專案帶來了全新的 API 伺服器、兩個強大的文件轉換引擎,以及完整的大檔案傳輸機制。

Features

  • Rust API Server全新:新增獨立的 Rust API 伺服器,同時支援 REST API 與 GraphQL API。所有 API 請求皆需 JWT Bearer Token 驗證,整合 20+ 種轉換引擎,並在轉換不支援時自動回傳可用替代方案。這為程式化呼叫 ConvertX 開啟了全新的可能性。

  • MinerU 文件轉換引擎:整合 MinerU 智慧文件解析引擎,支援將 PDF、PPT、PPTX、DOC、DOCX、XLS、XLSX 等文件轉換為 Markdown 格式。提供兩種輸出模式:md-t(表格模式)與 md-i(圖片模式),轉換結果以 .tar 封裝輸出。

  • PDFMathTranslate 翻譯引擎:新增 PDF 數學公式保留翻譯功能,支援 15 種目標語言(包含繁體中文、簡體中文、英文、日文、韓文、德文、法文等)。轉換結果包含原始 PDF 與翻譯後 PDF一同打包為 .tar 檔案。

  • 分塊傳輸機制Chunk Transfer:針對大檔案傳輸設計的全新機制。超過 10MB 的檔案將自動切割為 5MB 分塊上傳,並支援斷點續傳與亂序上傳合併。下載端同樣支援分塊下載,確保大檔案傳輸穩定可靠。

  • 深色模式切換Header 新增主題切換按鈕,支援淺色 / 深色模式一鍵切換,偏好設定自動儲存至本地。

🐛 Bug Fixes

  • Lint 問題修復:修復 XSS K601 安全警告、Knip 未使用匯出偵測、以及 ESLint 錯誤,確保程式碼品質符合規範。

📦 Infrastructure

  • Docker Compose 擴充:新增 API Server 的 Docker Compose profiles 整合,可透過 --profile api 一併啟動 API 伺服器。包含完整的環境變數範例與健康檢查腳本。

  • Dockerfile 強化:擴充主 Dockerfile 以支援 PDFMathTranslate 所需的 Python 環境與模型預載。

📚 Documentation

  • README 大幅擴充:新增 API Server 說明、新轉換器介紹、以及更詳細的部署指南。
  • i18n 文件更新:新增主題切換相關的國際化字串,覆蓋所有 65 種語言。

🧪 Testing

  • 新增 MinerU converter 完整測試11 個測試案例)
  • 新增 PDFMathTranslate converter 完整測試13 個測試案例)
  • 新增 Chunk Transfer 模組完整測試(上傳 / 下載 / 封裝共 32 個測試案例)
  • 所有 159 個測試案例全數通過

0.1.9 (2026-01-20)

Features

  • 全頁拖曳上傳:檔案可拖曳到頁面任何位置上傳
  • Setup 頁面語言切換:首次設定頁面新增語言選擇器

🐛 Bug Fixes

  • 語言選擇器 UI 修復
    • 語言 icon 尺寸從 h-5 w-5 增大至 h-6 w-6與文字視覺高度一致
    • Dropdown 背景改為完全不透明,提升可讀性
    • 新增 scrollbar 樣式,改善滾動體驗
    • 邊框顏色加深,增強視覺對比

🌍 i18n

  • 提示訊息國際化:所有 confirm / alert 訊息改用 i18n
  • Setup 頁面 i18n 完整化:首次設定頁面所有文字皆使用 i18n key

📚 Documentation

README 重新定位為「開箱即用」

  • 精簡至 100 行內5 分鐘完成部署
  • 只保留必要參數說明
  • 進階內容移至 docs 子目錄

新增文件結構

目錄 內容
docs/deployment/ quickstart, docker-compose, update
docs/config/ environment, security
docs/versions/ latest, pinned-version

文件拆分原則

  • README = 新手入口(一分鐘看懂怎麼部署)
  • docs/ = 進階參考(完整設定、情境範例)
  • 每個文件都有清楚的連結導航

0.1.8 (2026-01-20)

🐛 Bug Fixes

  • LibreOffice PDF→DOCX: 修復 PDF 轉 DOCX 一定失敗的問題
    • 新增 PDF Import Pipeline使用 --infilter=writer_pdf_import
    • 分流邏輯PDF→文字格式 vs 一般轉換
    • 支援 PDF→DOCX/ODT/RTF/TXT/HTML

🛡️ Reliability

  • 輸出檔案驗證: 新增 existsSync 檢查,確保轉換真的成功
  • 錯誤訊息優化: 根據 stderr 內容提供有意義的中文錯誤訊息
    • 識別加密檔案、損壞檔案、缺少 filter 等情況
    • 避免 ENOENT 錯誤擴散

📝 Technical Notes

  • LibreOffice 架構說明:
    • Export Pipeline原生格式→導出格式DOCX→PDF
    • Import Pipeline非原生格式→原生格式PDF→DOCX
    • PDF 作為輸入時必須使用 writer_pdf_import

⚠️ Known Limitations

以下情況仍會失敗LibreOffice 限制):

  • 加密/密碼保護的 PDF/DOCX
  • 損壞的檔案
  • 缺少必要字型(可能成功但版面錯亂)
  • 並行大量轉檔LibreOffice 對 concurrent instance 不友善)

0.1.7 (2026-01-20)

🐛 Bug Fixes

  • 登入問題: 修復遠端部署時登入後被導回登入頁的問題
    • 將 Cookie sameSitestrict 改為 lax
    • 新增 Cookie path 設定確保覆蓋整個應用
    • 新增 TRUST_PROXY 環境變數支援 reverse proxy

🚀 Features

  • Dockerfile 擴充: 直接內建進階功能(不再分 Full 版)
    • 新增 texlive-lang-arabic 阿拉伯語 LaTeX 支援
    • 新增 texlive-lang-other 希伯來語等 LaTeX 支援
    • 新增 python3-opencv 電腦視覺轉換支援
    • 新增 libavcodec-extra 額外影片編解碼器
  • Locale: 預設改為 zh_TW.UTF-8 確保中文 PDF 正確顯示
  • Pandoc: PDF 引擎改用 pdflatex 提高相容性

📝 Docs

  • 更新 compose.yaml 加入 TRUST_PROXY 說明
  • 新增遠端部署注意事項

0.1.6 (2026-01-20)

Features

  • Docker 架構: 整理並優化官方 Dockerfile
    • 更新 Dockerfile 註解與文件說明
    • 新增 Dockerfile.full 完整版範本
  • Dockerfile.full: 進階使用者自行 build 的完整範本
    • 包含 65 種 OCR 語言(預設關閉)
    • 包含完整 TexLive 選項(預設關閉)
    • 包含額外字型套件(預設關閉)
    • 所有進階功能以註解方式提供,使用者自行選擇

Docs

  • 更新 docs/docker.md
    • 說明官方 Image vs 完整版差異
    • 新增自訂 Build 指南
    • 新增可選功能大小說明

Optimization

  • 優化 Dockerfile 結構與註解
  • 清楚標示哪些功能未內建於官方 Image

0.1.5 (2026-01-20)

Features

  • 註冊功能: 移除 ACCOUNT_REGISTRATION 限制,註冊頁面始終可用
  • 語言選單: UI 改為可滾動max-height: 320px避免畫面被撐爆
  • 文件系統: 新增 FAQ 常見問題文件

Bug Fixes

  • Login 頁面始終顯示 Register 連結
  • 註冊後可直接登入(與原作者 v0.17.0 行為一致)

Docs

  • 簡化 README 快速開始說明
  • 更新 getting-started.md 加入資料夾初始化指令
  • 新增 docs/faq.md 常見問題

0.1.4 (2026-01-20)

Features

  • i18n: 擴展支援 65 種語言(從 5 種大幅擴展)
    • 歐洲語系de, fr, es, it, pt, ru, nl, pl, uk, cs, sv, da, fi, no, el, hu, ro, bg, hr, sk, sl, lt, lv, et, sr, ca, eu, gl, is, ga, cy, mt, mk, sq
    • 中東語系ar, he, fa, tr
    • 南亞語系hi, bn, ta, te, mr, gu, kn, ml, ne, si
    • 東南亞語系th, vi, id, ms, fil, my, km, lo
    • 非洲語系af, sw, am, zu
  • 註冊功能: 預設開放使用者註冊(開箱即用)
  • 文件: 完整的文件系統
    • 新增 getting-started.md 快速入門指南
    • 新增 docker.md Docker 部署指南
    • 新增 environment-variables.md 環境變數說明
    • 新增 url-id-and-storage.md 儲存結構說明
    • 新增 advanced-usage.md 進階使用指南
    • 更新 i18n.md 65 種語言清單

Bug Fixes

  • 修復 i18n 模組導入路徑問題
  • 修復 TypeScript 編譯錯誤

Breaking Changes

  • ACCOUNT_REGISTRATION 預設值從 false 改為 true(開箱即用)

0.1.3 (2026-01-20)

Features

  • i18n: Add multi-language UI support with 5 languages
    • English (en) - default
    • Traditional Chinese (zh-TW) / 繁體中文
    • Simplified Chinese (zh-CN) / 简体中文
    • Japanese (ja) / 日本語
    • Korean (ko) / 한국어
  • Add language selector dropdown in navigation header
  • Auto-detect user's preferred language from browser settings
  • Persist language preference in cookies
  • All UI text (buttons, labels, messages, errors) now supports translation
  • Extensible i18n architecture for adding more languages in the future

Technical Details

  • New /src/i18n/ directory with translation core functionality
  • New /src/locales/ directory with JSON translation files
  • New LanguageSelector component for language switching
  • Updated all page components to support localization
  • Client-side translation helper for dynamic content

0.15.0 (2025-10-07)

Features

  • add download all file by file alongside the tar download (#415) (3e7e95b)
  • vtracer implemented and added docker file binaries install (76c840d)

Bug Fixes

0.14.1 (2025-06-04)

Bug Fixes

0.14.0 (2025-06-03)

Features

  • add dvisvgm (625e1a5)
  • add ImageMagick (b47e575), closes #295, closes #269
  • enhance job details display with file information (50725ed), closes #251
  • improve job details interaction and accessibility (29ba229)
  • show version in footer (9a49ded)

Bug Fixes

0.13.0 (2025-05-14)

Features

  • add HIDE_HISTORY option to control visibility of history page (9d1c931)
  • add potrace converter (bdbd4a1)
  • Add support for .HIF files (70705c1)
  • add support for drag/drop of images (ff2ef74)

Bug Fixes

0.12.1 (2025-03-20)

Bug Fixes

0.12.0 (2025-03-06)

Features

  • added progress bar for file upload (db60f35)
  • made every upload file independent (cc54bdc)
  • replace exec with execFile (9263d17)

Bug Fixes

  • add libheif (6b92540)
  • add libheif (decfea5), closes #202
  • added onerror log (ae4bbc8)
  • refactored uploadFile to only accept a single file instead of multiple (dc82a43)
  • update libheif to 1.19.5 (fba5e21), closes #202

0.11.1 (2025-02-07)

Bug Fixes

0.11.0 (2025-02-05)

Features

Bug Fixes

  • don't crash if file is not found (16f27c1)
  • install numpy for inkscape (0e61051)

0.10.1 (2025-01-21)

Bug Fixes

  • ffmpeg works without ffmpeg_args (3b7ea88), closes #212

0.10.0 (2025-01-18)

Features

Bug Fixes

  • add FFMPEG_ARGS env variable (f537c81), closes #190
  • add qt6-qtbase-private-dev from community repo (95dbc9f)
  • skip account setup when ALLOW_UNAUTHENTICATED is true (538c5b6)

0.9.0 (2024-11-21)

Features

Bug Fixes

0.8.1 (2024-10-05)

Bug Fixes

0.8.0 (2024-09-30)

Features

Bug Fixes

0.7.0 (2024-09-26)

Features

  • Add support for 3d assets through assimp converter (63a4328)

Bug Fixes

  • wrong layout on search with few options (8817389)

0.6.0 (2024-09-25)

Features

  • ui remake with tailwind (22f823c)

Bug Fixes

  • rename css file to force update cache, fixes #141 (47139a5)

0.5.0 (2024-09-20)

Features

  • add option to customize how often files are automatically deleted (317c932)

Bug Fixes

  • improve file name replacement logic (60ba7c9)

0.4.1 (2024-09-15)

Bug Fixes

  • allow non lowercase true and false values, fixes #122 (bef1710)

0.4.0 (2024-08-26)

Features

Bug Fixes

  • keep unauthenticated user logged in if allowed #114 (bc4ad49)
  • pdf support in vips (8ca4f15)
  • Slow click on conversion popup does not work (4d9c4d6)

0.3.3 (2024-07-30)

Bug Fixes

  • downgrade @elysiajs/html dependency to version 1.0.2 (c714ade)

0.3.2 (2024-07-09)

Bug Fixes

  • increase max request body to support large uploads (3ae2db5), closes #64

0.3.1 (2024-06-27)

Bug Fixes

0.3.0 (2024-06-27)

Features

  • add version number to log (4dcb796), closes #44
  • change to xelatex (fae2ba9)
  • print version of installed converters to log (801cf28)

0.2.0 (2024-06-20)

Features

  • add libjxl for jpegxl conversion (ff680cb)
  • change from debian to alpine (1316957), closes #34

0.1.2 (2024-06-10)

Bug Fixes

0.1.1 (2024-05-30)

Bug Fixes

  • 🐛 make sure all redirects are 302 (9970fd3), closes #12

0.1.0 (2024-05-30)

Features

  • remove file from file list in index.html (787ff97)

Miscellaneous Chores