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.