Commit graph

938 commits

Author SHA1 Message Date
Your Name
8bb5be2c52 fix: 修正工作流程名稱格式,移除多餘的 emoji 2026-01-22 09:49:58 +08:00
Your Name
69610d28e0 feat: 新增遠端服務更新工作流程,透過 Tailscale SSH 更新 Docker 服務 2026-01-22 09:44:06 +08:00
Your Name
ffb72c531f chore: update Bun version to 1.3.6 in Dockerfiles 2026-01-22 00:58:36 +08:00
Your Name
2169aa90e9 style: fix prettier formatting 2026-01-22 00:51:37 +08:00
Your Name
912546aaa7 fix: ENOENT download error for archive-only converters (PDFMathTranslate/MinerU)
- Add existsSync checks in download.tsx before file access
- Fix normalizeFiletype.ts: md-t/md-i return original format (not tar.gz)
- Add outputMode: 'archive' support in main.ts with auto .tar suffix
- PDFMathTranslate outputs translated-<lang>.pdf + bilingual-<lang>.pdf (no original)
- MinerU outputs complete folder in .tar with logging
- Hide preview icon for .tar files in results.tsx
- Update Bun version: 1.2.2 -> 1.3.6
- Add Step 19: auto-deploy to remote server after Docker push

All 159 tests pass.
2026-01-22 00:47:37 +08:00
Your Name
1f800c3619 feat: 新增自動生成 Changelog 和 GitHub Release 的步驟 2026-01-21 23:53:44 +08:00
Your Name
cf8aa32ea8 fix: 移除多餘的空行以改善 YAML 格式 2026-01-21 22:41:28 +08:00
Your Name
258313fcbb fix: 正則表達式支援任意數量的版本數字段
- 舊規則:^[0-9]+\.[0-9]+\.[0-9]+$ (僅 X.Y.Z)
- 新規則:^[0-9]+(\.[0-9]+)+$ (支援 X.Y.Z.W...)
- 0.1.10 → latest ✓
- 0.1.10.1 → latest ✓
- 0.1.10.test → 不加 latest
2026-01-21 22:40:33 +08:00
Your Name
2f6c3fc0c6 feat: 根據版本號格式決定是否標記 latest
- 純數字版本(如 0.1.10)→ 同時標記 latest
- 測試版本(如 0.1.10.test)→ 僅標記版本號
- 使用正則表達式 ^[0-9]+\.[0-9]+\.[0-9]+$ 判斷
2026-01-21 22:38:37 +08:00
Your Name
cac29bfff1 fix: 修正 Dockerfile 中 dasel 和 resvg 安裝步驟的縮排問題 2026-01-21 21:10:33 +08:00
Your Name
947d189b6d fix: 修復 resvg ARM64 無預編譯版本問題
- 更新 resvg repo URL 從 RazrFalcon 到 linebender
- ARM64 架構跳過 resvg 安裝(官方無預編譯版本)
- x86_64 正常安裝 resvg v0.44.0
- ARM64 可使用 ImageMagick/Inkscape 作為 SVG 轉換替代方案
2026-01-21 21:04:40 +08:00
Your Name
4e07cd57aa fix: 修復 bookworm 缺少 dasel 和 resvg 套件的問題
- 從 apt-get install 移除 dasel 和 resvg
- 改用 GitHub releases 下載二進位檔案
- dasel v2.8.1 支援 amd64/arm64
- resvg v0.44.0 支援 amd64/arm64
2026-01-21 20:56:39 +08:00
Your Name
7c4a361e3f fix: 更新 Tailscale SSH 連線步驟,新增手動網頁驗證提示並設定連線超時 2026-01-21 20:53:14 +08:00
Your Name
4d2a690bb9 fix: 更新 Dockerfile 版本至 v0.1.10,修正基礎映像為 debian:bookworm,並新增 APT 重試機制以改善 Multi-Arch Build 的穩定性 2026-01-21 20:43:54 +08:00
Your Name
448011f7e2 fix: 更新 Multi-Arch Docker Build 流程,分離建構與推送步驟 2026-01-21 20:14:59 +08:00
Your Name
e651813034 fix: 優化 Dockerfile 分段安裝,改善 Multi-Arch Build 穩定性 2026-01-21 18:47:13 +08:00
Your Name
a4d5cd1e53 fix: 簡化 Tailscale SSH 流程,改善 Docker Build 錯誤處理 2026-01-21 18:44:52 +08:00
Your Name
ddbc92196f fix: 修正 tailscale ssh 語法,提供 ACL 設定說明 2026-01-21 17:47:45 +08:00
Your Name
45376702f2 fix: 修復 Tailscale SSH 需互動式登入問題,新增 --ssh 參數與 Smoke Test 2026-01-21 17:40:58 +08:00
Your Name
41a7111db2 feat: 更新 Remote Build workflow 支援 Multi-Arch (amd64/arm64) 2026-01-21 17:33:26 +08:00
Your Name
de11dd5a0d fix: use script file approach to avoid heredoc parsing issues [remote-build] 2026-01-21 17:00:30 +08:00
Your Name
893e65d09c release: v0.1.10 2026-01-21 16:07:32 +08:00
Your Name
79fc6f7067 fix: resolve lint issues (XSS K601, knip unused exports, eslint errors)
- Fix XSS warnings in user.tsx by adding safe attribute to elements
- Remove unused exports: ChunkUploadRequest, getArchiveInfo,
  getFileForDirectDownload, createDirectDownloadHeaders, createConverterArchive
- Fix eslint no-unused-vars errors across multiple files
- Fix pdfmathtranslate async Promise executor issue
- Update tests to use toThrow instead of toMatch for Error objects
- Apply prettier formatting
2026-01-21 16:00:26 +08:00
Your Name
db5f47586e feat: add theme toggle functionality and update localization files
- Implemented a theme toggle feature allowing users to switch between light and dark modes.
- Added a new ThemeToggle component for the theme switching button.
- Updated theme CSS to support dark mode variables and system preference detection.
- Enhanced localization files to include translations for the "toggleTheme" key across multiple languages.
2026-01-21 15:00:34 +08:00
Your Name
1f850dd926 feat: 更新 Dockerfile 以預先下載 PDFMathTranslate 所需模型及字型 2026-01-21 14:31:28 +08:00
Your Name
d943771f36 feat: add PDFMathTranslate converter for PDF translation with mathematical content
- Introduced PDFMathTranslate converter to handle PDF translations while preserving mathematical formulas.
- Updated Dockerfile to include necessary dependencies and pre-download models during build.
- Enhanced README.md to document the new converter and its features.
- Added tests for PDFMathTranslate to ensure correct functionality and error handling.
2026-01-21 14:31:19 +08:00
Your Name
5322f85721 feat: 實作全域檔案傳輸機制與 .tar 封裝規範
## 主要變更

### 新增全域檔案傳輸模組 (src/transfer/)
- constants.ts: 定義傳輸常數(10MB 門檻、5MB chunk 大小)
- types.ts: 傳輸類型定義
- uploadManager.ts: 後端上傳管理器(支援直傳與 chunk)
- downloadManager.ts: 後端下載管理器(支援直傳與 chunk)
- archiveManager.ts: 封裝管理器(僅允許 .tar)
- index.ts: 統一匯出

### 新增 API 端點
- uploadChunk.tsx: Chunk 上傳 API
- downloadChunk.tsx: Chunk 下載 API

### 前端更新
- public/script.js: 整合智慧傳輸策略(≤10MB 直傳,>10MB chunk)
- public/transfer.js: 前端傳輸管理模組

### 轉換器更新
- mineru.ts: 改用 .tar 格式(不壓縮),禁止 .tar.gz
- download.tsx: 使用統一的封裝管理器

### 測試
- tests/transfer/: 完整傳輸機制測試套件
- tests/converters/mineru.test.ts: 更新以符合 .tar 規範

### 文件
- README.md: 新增檔案傳輸機制說明

## 設計原則
- 檔案 ≤10MB:直接傳輸
- 檔案 >10MB:使用 5MB chunks 分段傳輸
- 多檔輸出:僅允許 .tar 封裝(禁止 .tar.gz/.zip)
- 引擎層不感知 chunk(僅傳輸層處理)
2026-01-21 13:58:01 +08:00
Your Name
f7ebc084ea refactor: update MinerU to use tar.gz and mineru CLI
- Change archive format from zip to tar.gz
- Use 'mineru' CLI command instead of 'magic-pdf'
- Install mineru[all] via pipx in Dockerfile
- Remove zip dependency from Dockerfile
- Update normalizeFiletype to output tar.gz extension
- Update all tests for tar.gz output format
- Simplify README MinerU section
2026-01-21 12:20:40 +08:00
Your Name
e5ca364563 feat: integrate MinerU document to Markdown converter
- Add MinerU converter engine (src/converters/mineru.ts)
- Support md-t (table as Markdown) and md-i (table as image) output formats
- Input formats: pdf, ppt, pptx, xls, xlsx, doc, docx
- Output as ZIP archive containing Markdown and images
- Update Dockerfile to install magic-pdf via pipx
- Add zip utility for archive creation
- Update normalizeFiletype to map md-t/md-i to zip extension
- Add comprehensive tests for MinerU converter
- Update README with MinerU documentation
2026-01-21 12:10:49 +08:00
Your Name
e577658231 feat(api): Docker Compose 整合與補充文件 - Docker Compose profiles 支援選用 API Server - API Server Dockerfile (多階段建置) - .env.api.example 環境變數範本 - integration_tests.rs 完整整合測試 - health_check.sh 健康檢查腳本 - 主專案 README 新增 API Server 說明區塊 2026-01-21 11:50:11 +08:00
Your Name
e083e5d11d feat: Add Rust API Server with REST and GraphQL support
- Implement JWT authentication layer
- Add Engine Registry with 20+ conversion engines
- Implement Conversion Service with background job processing
- REST API endpoints for file conversion operations
- GraphQL API with queries and mutations
- Comprehensive error handling with conversion suggestions
- Integration tests for both REST and GraphQL APIs
- Complete API documentation

Features:
- REST API: /api/v1/* endpoints
- GraphQL API: /graphql endpoint with playground
- JWT Bearer token authentication
- Engine validation with alternative suggestions
- File download via API (not exposing file paths)
- Support for FFmpeg, ImageMagick, LibreOffice, Pandoc, and more
2026-01-21 11:40:03 +08:00
Your Name
d0388066a5 docs: 優化全頁拖曳上傳支援,增加防重複檢查機制 2026-01-21 11:13:21 +08:00
Your Name
e12f2da6dd docs: 調整 Docker Compose 部分標題格式以增強可讀性 2026-01-20 21:14:49 +08:00
Your Name
0c44b62280 docs: 更新 Docker Compose 部分,新增建立專案資料夾的指示 2026-01-20 21:13:28 +08:00
Your Name
2f22c72ace docs: 更新 JWT_SECRET 說明以提供更清晰的指導 2026-01-20 20:55:29 +08:00
Your Name
2b1bfc1df4 docs: 更新 JWT_SECRET 說明以提供更清晰的指導 2026-01-20 20:53:35 +08:00
Your Name
d87c032db8 docs: 更新 JWT_SECRET 範例字串以提供更清晰的指導 2026-01-20 20:49:06 +08:00
Your Name
4f3a93f004 docs: 更新快速啟動指引,調整標題格式與內容 2026-01-20 20:45:33 +08:00
Your Name
7d102688a4 docs: 新增線上示範資訊與測試帳號 2026-01-20 20:32:47 +08:00
Your Name
1a8548ff66 docs: README 重構 + i18n UI 規範 + 文件連結整理
README 改動:
- 新增 Docker Run 快速啟動區塊
- 重新編排為 10 個標準區塊
- 加入作業系統資料夾提醒表格
- 精簡進階設定為連結列表
- 減少 emoji 使用

docs 改動:
- i18n.md 新增語言選擇器 UI 規範
- getting-started.md 去重並加入返回連結
- 標題與連結一致化
2026-01-20 17:00:21 +08:00
Your Name
bf8784ed82 docs: README 重構 - 加入 docker run + 精簡結構 2026-01-20 16:24:20 +08:00
Your Name
d563682753 feat: v0.1.9 - Setup 頁面 i18n + 語言選擇器 UI 修復 + 文件重構
 Features:
- 全頁拖曳上傳:檔案可拖曳到頁面任何位置
- Setup 頁面新增語言選擇器

🐛 Bug Fixes:
- 語言 icon 尺寸修復(h-5→h-6)
- Dropdown 背景完全不透明
- 新增 scrollbar 樣式

🌍 i18n:
- 所有 confirm/alert 訊息國際化
- Setup 頁面 i18n 完整化

📚 Documentation:
- README 精簡為開箱即用版本
- 新增 docs/deployment/, docs/config/, docs/versions/
2026-01-20 15:55:49 +08:00
Your Name
a45a049fe2 feat: v0.1.9 - 全頁拖曳上傳 + i18n 修正 + 文件更新
 Features:
- 全頁拖曳上傳:檔案可拖曳到頁面任何位置上傳
- 原本的上傳框視覺效果保持不變

🌍 i18n:
- 刪除任務的 confirm/alert 訊息改用 i18n
- 隨語言切換即時更新顯示內容

📚 Documentation:
- README 新增「如何更新 ConvertX-CN 版本」章節
- 新增 deployment.md(Reverse Proxy、HTTPS)
- 新增 Docker Compose 範例分層
- 更新 environment-variables.md
2026-01-20 15:09:30 +08:00
Your Name
a0eccf0437 fix(libreoffice): PDF 轉 DOCX 修正 (v0.1.8)
- 新增 PDF 匯入管線:PDF → DOCX/ODT/RTF/TXT/HTML 使用 --infilter=writer_pdf_import
- 新增輸出檔案存在性驗證,避免 ENOENT 錯誤
- 改善錯誤訊息:密碼保護、檔案損壞、無匯出過濾器等情境
- 重寫測試套件:19 個測試全數通過
2026-01-20 14:38:17 +08:00
Your Name
03be03bbc2 fix(auth): 修復遠端部署登入失敗問題 v0.1.7
## Bug Fixes
- Cookie sameSite 從 strict 改為 lax(修復遠端存取問題)
- 新增 Cookie path 設定確保覆蓋整個應用
- 新增 TRUST_PROXY 環境變數支援 reverse proxy

## Features
- Dockerfile 新增 texlive-lang-arabic/other(阿拉伯/希伯來語)
- Dockerfile 新增 python3-opencv(電腦視覺)
- Dockerfile 新增 libavcodec-extra(額外編解碼器)
- Locale 預設改為 zh_TW.UTF-8
- Pandoc PDF 引擎改用 pdflatex

## Docs
- compose.yaml 新增 TRUST_PROXY 說明
- 新增遠端部署注意事項
2026-01-20 14:11:11 +08:00
Your Name
44152ff872 fix(ci): 修正 Release workflow 確保 Docker Image 正確發佈
- dockerhub-description.yml:
  - 修正 IMAGE_NAME 為 convertx/convertx-cn
  - 新增 continue-on-error 避免阻擋 Release
  - 新增 workflow_run 觸發器

- release.yml:
  - 新增 workflow_dispatch 手動觸發支援
  - 新增 permissions 設定
  - 優化 disk cleanup 錯誤處理

- docker-publish.yml:
  - 修正 DOCKERHUB_USERNAME 從 secrets 讀取
  - 修正 DOCKER_IMAGE 為正確的 convertx/convertx-cn
2026-01-20 12:52:02 +08:00
Your Name
f675a68d87 feat(docker): 重組 Docker 架構 v0.1.6
- 優化 Dockerfile 註解與標頭
- 新增 Dockerfile.full 擴充範本 (FROM convertx-cn:latest)
  - 依地區分類 65+ OCR 語言
  - 額外字型/TexLive 套件選項
  - 每個區塊含預估大小說明
- 更新 docker.md 雙 Image 說明文件
- 版本更新至 0.1.6
2026-01-20 12:46:49 +08:00
Your Name
569c572e62 fix(ci): resolve all lint errors for GitHub Actions
- Remove unused SupportedLocale import in results.tsx
- Remove unused webroot variable in public/i18n.js
- Configure knip.json to ignore i18n public API exports
- Add language-selector and language-option to ESLint ignore list
- Auto-fix Prettier formatting across all files
- Fix better-tailwindcss line wrapping issues
2026-01-20 12:16:13 +08:00
Your Name
8089fa0853 feat(v0.1.5): Always-on Registration + Scrollable Language Selector
## Registration (Breaking Change)
- Remove ACCOUNT_REGISTRATION restriction on Register page
- Login page always shows Register link
- Registration behavior now matches upstream v0.17.0

## UI Improvements
- Language selector dropdown: add max-height (320px) + overflow-y: auto
- Prevents UI overflow when 65+ languages are displayed

## Documentation
- New docs/faq.md with common questions
- Simplified README quick start (remove ACCOUNT_REGISTRATION from examples)
- Updated getting-started.md with folder initialization guide

## Build Verification
- bun run build: PASSED
- Docker build: PASSED
- TypeScript: PASSED
2026-01-20 12:02:50 +08:00
Your Name
558d638df8 feat(v0.1.4): Fix i18n imports + Default open registration
## Changes

### i18n Module Fixes
- Fix import paths in service.ts, languageSelector.tsx, header.tsx, base.tsx, results.tsx
- Change from '../i18n' to '../i18n/index' or './index' for proper module resolution

### Registration (Breaking Change)
- Change ACCOUNT_REGISTRATION default from false to true (out-of-box ready)
- Login and Register pages now both visible by default

### Version Bump
- Update package.json to v0.1.4
- Update CHANGELOG.md with v0.1.4 release notes
- Update README.md and docs with new version numbers

### Build Verification
- bun run build: PASSED
- Docker build: PASSED
- TypeScript compilation: PASSED (no errors)
2026-01-20 11:41:43 +08:00