refactor: 统一字体常量,消除 generate/constants.ts 与 components/title/constants.ts 的重复定义 #2012

Merged
xiaoxia merged 1 commits from fix/unify-font-constants into develop 2026-09-22 22:00:35 +08:00
Owner

问题

字体配置存在两份定义,字体名一致但 CSS font-family 值有差异:

字体 components/title/constants.ts(公共层) generate/constants.ts(旧重复定义)
优设标题黑 "YouShe Title Black","YouSheBiaoTiHei",... "YouSheBiaoTiHei","YouShe Title Black",... 顺序反
抖音美好体 ...,"DouyinSans",... ...,"DouyinSansBold",... Bold vs Sans
思源黑体Heavy ...,"Noto Sans SC",... ...,"Noto Sans SC Heavy",... Noto 变体不同

影响:TitleMiniPreview(Canvas 预览)用的旧版 font-family,和 TitleStylePanel(下拉框)不一致,预览和实际渲染可能有偏差。

修复

  1. 删除 generate/constants.ts 中旧的 FONT_OPTIONS(string[])、FONT_FAMILY_MAP 和 getFontFamily
  2. 改为 export { getFontFamily } from "@/components/title/constants"(re-export,单一数据源)
  3. 更新 3 个消费方(TitleMiniPreview.tsx、TitlePresetsGrid.tsx、FrontendPreviewPlayer.tsx)的 import 路径

影响范围

  • 纯重构,无功能变更
  • 4 个文件,+5/-36 行
  • 所有字体配置统一由 components/title/constants.ts 管理
## 问题 字体配置存在两份定义,字体名一致但 CSS font-family 值有差异: | 字体 | `components/title/constants.ts`(公共层) | `generate/constants.ts`(旧重复定义) | |------|------|------| | 优设标题黑 | `"YouShe Title Black","YouSheBiaoTiHei",...` | `"YouSheBiaoTiHei","YouShe Title Black",...` 顺序反 | | 抖音美好体 | `...,"DouyinSans",...` | `...,"DouyinSansBold",...` Bold vs Sans | | 思源黑体Heavy | `...,"Noto Sans SC",...` | `...,"Noto Sans SC Heavy",...` Noto 变体不同 | 影响:`TitleMiniPreview`(Canvas 预览)用的旧版 font-family,和 `TitleStylePanel`(下拉框)不一致,预览和实际渲染可能有偏差。 ## 修复 1. 删除 `generate/constants.ts` 中旧的 `FONT_OPTIONS`(string[])、`FONT_FAMILY_MAP` 和 `getFontFamily` 2. 改为 `export { getFontFamily } from "@/components/title/constants"`(re-export,单一数据源) 3. 更新 3 个消费方(`TitleMiniPreview.tsx`、`TitlePresetsGrid.tsx`、`FrontendPreviewPlayer.tsx`)的 import 路径 ## 影响范围 - 纯重构,无功能变更 - 4 个文件,+5/-36 行 - 所有字体配置统一由 `components/title/constants.ts` 管理
xiaoxia added 1 commit 2026-09-22 21:13:58 +08:00
refactor: 统一字体常量,消除 generate/constants.ts 与 components/title/constants.ts 的重复定义
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 1s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m14s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m23s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m52s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 4m16s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 4m49s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 6m2s
AI Code Review / AI Code Review (pull_request) Successful in 6m47s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 9m12s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 10m38s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 15m5s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Failing after 1s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 28s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 1m16s
30e07a8939
- 删除 generate/constants.ts 中旧的 FONT_OPTIONS(string[])、FONT_FAMILY_MAP 和 getFontFamily
- 改为 re-export getFontFamily from @/components/title/constants(单一数据源)
- 更新 TitleMiniPreview/TitlePresetsGrid/FrontendPreviewPlayer 的 import 路径
- 修复 font-family CSS 值不一致问题(优设标题黑顺序、抖音美好体Bold/Sans、思源黑体Heavy Noto变体)
auto-approve-bot approved these changes 2026-09-22 21:15:22 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-09-22 21:15:22 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。

🚀 预览环境已部署

项目 详情
PR号 #2012
预览链接 https://pr-2012.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #2012 | | 预览链接 | [https://pr-2012.preview.xiaoxiajianji.com](https://pr-2012.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia scheduled this pull request to auto merge when all checks succeed 2026-09-22 22:00:34 +08:00
xiaoxia merged commit 98e8b8a8e9 into develop 2026-09-22 22:00:35 +08:00

🗑️ 预览环境已清理

PR #2012 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #2012 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.