Commit graph

49 commits

Author SHA1 Message Date
Your Name
6d948b0873 feat: implement automatic format inference service with candidate generation and prediction model
- Add formatCandidateRules.ts to define rules for generating format candidates based on file features.
- Introduce formatPredictionModel.ts to predict the most likely target format based on user behavior and file features.
- Create inferenceService.ts to integrate all inference modules and provide a unified inference API.
- Develop inference.tsx as an API endpoint for frontend calls to predict formats and engines based on file extensions.
- Implement logging for conversion events and dismissals, along with user profile retrieval.
- Ensure warmup management for engine predictions and provide status checks.
2026-01-26 12:47:16 +08:00
Your Name
31088cf12b fix: 修正表單標籤結構,將文本包裝在 span 中以改善可讀性 2026-01-23 00:52:32 +08:00
Your Name
4ca92e3a22 release: v0.1.11 - BabelDOC 翻譯引擎與穩定性改進
## 新增功能

- BabelDOC PDF 翻譯引擎:支援 PDF/Markdown/HTML 輸出,15 種目標語言

- Dockerfile 更新:pipx 安裝 babeldoc,warmup 預載資源

## 修復

- 修正 user.tsx XSS 安全警告(label 包裹 safe span)

## 品質保證

- 173 個測試全數通過

- TypeScript / ESLint / Prettier / Knip 檢查通過
2026-01-22 17:41:12 +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
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
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
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
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
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
Your Name
53b83b425f feat: rebrand to ConvertX-CN, fix TypeScript error, add docs
- Fix TypeScript TS2345 error in i18n/service.ts by parsing cookie from header
- Rebrand all ConvertX references to ConvertX-CN
- Change default language from en to zh-TW
- Fix footer to always display English 'Powered by ConvertX-CN'
- Update GitHub links to pi-docket/ConvertX-CN
- Add /docs folder with documentation:
  - getting-started.md
  - configuration.md
  - converters.md
  - i18n.md
- Update all locale files with new branding
2026-01-20 10:29:17 +08:00
Your Name
33301033ae feat(i18n): add multi-language UI support with 5 languages
- Add i18n framework with locale detection and cookie persistence
- Support English, Traditional Chinese (zh-TW), Simplified Chinese (zh-CN), Japanese (ja), Korean (ko)
- Add LanguageSelector component in navigation header
- Create locale JSON files with full translations
- Update all page components (root, user, results, history) with i18n support
- Add client-side translation helpers for dynamic content
- Auto-detect user's preferred language from browser settings
- Bump version to v0.1.3
2026-01-20 10:01:55 +08:00
Emrik Östling
7a936bdc04
Merge commit from fork 2026-01-13 20:34:21 +01:00
Namit
8af8e59b4f
feat: bulk job deletion with multi-select UI (#481)
Closes #445
2025-12-27 00:24:39 +01:00
lif
9ac5e7569b
Fix timezone display in history page (#479) 2025-12-23 02:29:34 +01:00
Emrik Östling
5268838975 chore: fix format 2025-12-01 22:31:10 +01:00
Emrik Östling
550f472451
Merge commit from fork 2025-12-01 22:26:56 +01:00
Emrik Östling
64264a41d9
feat: add delete button in history (#440) 2025-11-16 00:34:49 +01:00
Emrik Östling
80b55657a4
feat: add healthcheck endpoint (#431) 2025-11-02 13:58:57 +01:00
Param Siddharth
4d65cc7228
feat: add button and API endpoint to delete job (#423) 2025-10-29 20:35:43 +01:00
Emrik Östling
3e7e95b53c
feature: add download all file by file alongside the tar download (#415) 2025-10-07 21:27:31 +02:00
C4illin
7691594b10 chore: fix formatting 2025-10-05 14:54:19 +00:00
C4illin
17325a6e6d chore: fix lint 2025-10-05 14:19:13 +00:00
C4illin
d984891791 chore: add devcontainer 2025-10-05 13:57:54 +00:00
C4illin
c9b65c7652 chore: use auth macro instead of checking it on every path 2025-10-02 17:29:58 +02:00
C4illin
9696cc7188 chore: format files 2025-08-13 20:51:41 +02:00
C4illin
81f109f830 chore: format files 2025-08-07 23:38:25 +02:00
Nick J
f5f718a84a Use a new env variable to determine whether the user ID should be set to 0 for unauthenticated users 2025-07-24 18:03:55 +02:00
Nick J
4c36a950a7 Set user ID to 0 if not using accounts 2025-07-24 18:03:55 +02:00
Maxime
31b7e62983 removed redundant boolean eval 2025-06-25 14:52:38 +02:00
Maxime
0f5ef2f49c added setting number of concurrent convert processes 2025-06-25 14:35:30 +02:00
Maxime
2ce3fee70b added tar creation when using Download All 2025-06-25 14:34:27 +02:00
C4illin
f789d9dfe3 fix: add language env 2025-06-05 19:56:22 +02:00
C4illin
1be11708c4 chore: format all files 2025-06-03 19:19:28 +02:00
C4illin
ff2c0057e8 fix: progress bars on firefox 2025-06-03 18:23:26 +02:00
C4illin
6af1e8f326 refactor: create db types 2025-06-03 17:13:20 +02:00
C4illin
9e759a75de refactor: split main file to pages 2025-06-03 15:04:18 +02:00
C4illin
13cc37d5a2 start on pandoc 2024-05-19 23:51:27 +02:00
C4illin
a68046ecd6 jsx working 2024-05-19 00:07:56 +02:00
C4illin
0f0bc6c4e5 delete is working 2024-05-18 01:41:35 +02:00
C4illin
c2f36e9723 login working 2024-05-18 00:16:08 +02:00
C4illin
a0885013bb working file upload 2024-05-17 19:23:05 +02:00
C4illin
787ff9741e feat: remove file from file list in index.html 2024-05-16 19:11:39 +02:00
C4illin
7693c7c931 file upload start 2024-04-10 14:42:05 +02:00
C4illin
b0c2dba1d6 add html plugin 2024-04-09 15:42:08 +02:00