Skip to content

Lyrics Card Generator v3.8.1 發布說明 ​

發布日期:2026-06-30

v3.8.1 是一次維護性重構版本,不是功能刪減版本,也不是 UI 重做版本。這次更新聚焦於把主編輯器從單體元件拆分為更清晰的預設值、步驟組裝、業務動作、AI 翻譯、偏好設定與主題令牌模組,同時維持既有功能入口、視覺和匯出結果穩定。

重構原因 ​

  • LyricEditor.tsx 先前同時承擔頁面配置、預設狀態、業務動作、AI 翻譯、偏好設定、步驟組裝與主題衍生等多類職責,維護成本過高。
  • 過多邏輯堆疊在同一檔案內,不利於後續型別檢查、回歸修復與 Web / 桌面差異定位。

拆分結果 ​

  • LyricEditor.tsx 現在主要負責組合 hooks、settings steps 與預覽版面,收斂為頁面編排層。
  • components/editor/editor-defaults.ts 承載 defaultState、DEFAULT_LYRICS、DEFAULT_TRANSLATION、DEFAULT_INSTRUMENTAL_TEXT。
  • components/editor/useEditorSteps.tsx 負責 settings steps 的 JSX 組裝與顯式入參。
  • components/editor/hooks/useEditorActions.ts 管理清空內容、樣式切換、範例載入與完成匯出等業務動作。
  • components/editor/hooks/useEditorAiTranslation.ts 管理 AI 面板開關、串流狀態、錯誤、取消與發起翻譯。
  • components/editor/hooks/useEditorPreferences.ts 管理應用偏好、首次啟動語言、設定保存與桌面視窗材質同步。
  • components/editor/hooks/useEditorThemeTokens.ts 管理主題強調色、背景色與 UI 文字 token 衍生。
  • components/editor/utils/normalizeAIErrorMessage.ts 與 components/editor/utils/sizeSnapshot.ts 提供純工具,避免額外業務耦合與循環依賴。

AI provider helpers 與執行時邊界 ​

  • Web 端仍透過 app/api/ai/translate/route.ts 處理 /api/ai/translate 請求。
  • 桌面端仍透過 Electron IPC 與 safeStorage 路徑處理 API Key 和翻譯請求。
  • 這次僅整理 provider request / response 的純邏輯,例如 getChatCompletionsUrl、DeepSeek thinking 判定、請求體組裝與錯誤正規化。
  • 沒有把 Electron-only 程式碼引入 Next route,也沒有把 browser-only 邏輯塞進 Electron main。

功能完整性、版本同步與風險控制 ​

  • 歌曲連結解析、本機音訊解析、歌詞擷取、AI 翻譯、封面取色、主題設定、桌面端 Acrylic、匯出、範例載入、多語言、字型設定與版面設定等入口全部保留。
  • 這次採用小步拆分、職責遷移與回歸測試的方式推進,避免一次性大改,不改變產品定位或使用者可見行為。
  • 版本中繼資料、README 下載檔名與多語言發布說明入口已同步抬版到 3.8.1。

驗證 ​

  • npm run typecheck
  • npm run core:test
  • npm run build
  • npm run desktop:build

Cherry Chu · Projects, notes, and working documentation.