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