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