Skip to content

refactor(font): 重构歌词字体配置管理#669

Merged
imsyy merged 1 commit into
SPlayer-Dev:devfrom
MoYingJi:pr/f
Dec 27, 2025
Merged

refactor(font): 重构歌词字体配置管理#669
imsyy merged 1 commit into
SPlayer-Dev:devfrom
MoYingJi:pr/f

Conversation

@MoYingJi
Copy link
Copy Markdown
Collaborator

No description provided.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @MoYingJi, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

此拉取请求旨在重构歌词字体配置的管理方式,通过将字体配置数据和语言特定字体样式的生成逻辑抽象到一个独立的工具文件中,显著提升了代码的模块化、可维护性和可扩展性。这一改动简化了字体设置组件和歌词显示组件中的代码,使其更加专注于各自的核心功能。

Highlights

  • 字体配置集中管理: 将歌词字体配置(lyricFontConfigs)从 FontManager.vue 组件中提取到新的 src/utils/lyricFontConfig.ts 工具文件中,实现配置的集中管理和复用。
  • 语言特定字体样式动态生成: 引入 lyricLangFontStyle 工具函数,用于动态生成并应用针对英语、日语、韩语歌词的 CSS 字体样式,取代了在 MainAMLyric.vueMainLyric.vue 中手动设置多个 CSS 变量的方式。
  • 属性名称统一: 在 FontManager.vue 中,将字体配置对象的属性名 key 统一更名为 keySetting,以提高命名清晰度。
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

本次 PR 对歌词字体配置管理进行了重构,将相关配置和逻辑提取到了新的 src/utils/lyricFontConfig.ts 文件中。这使得代码更加模块化,并减少了 MainAMLyric.vueMainLyric.vue 组件中的重复代码。整体来看,这是一次不错的重构,提高了代码的可维护性。

我在新文件中发现了一些可以改进类型安全和代码清晰度的地方,并提供了具体的建议。请查看我的评论。

}

export interface LyricLangFontConfig extends LyricFontConfig {
keyCss: string;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

为了增强类型安全,建议在 LyricLangFontConfig 接口中显式地收窄 keySetting 的类型,因为它只涉及特定语言的字体配置。这可以防止将不相关的字体键(如 LyricFont)错误地用于语言特定字体配置中。

  keyCss: string;
  keySetting: "japaneseLyricFont" | "englishLyricFont" | "koreanLyricFont";

];

export const lyricLangFontStyle = (
settingStore = useSettingStore()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

为了提高代码的可读性和类型安全性,建议为 lyricLangFontStyle 函数的 settingStore 参数添加明确的类型。这可以帮助 TypeScript 和开发人员理解期望的参数类型,并提供更好的自动补全和编译时检查。

ReturnType 是 TypeScript 内置的工具类型,无需额外导入。

  settingStore: ReturnType<typeof useSettingStore> = useSettingStore()

@imsyy imsyy merged commit 498293f into SPlayer-Dev:dev Dec 27, 2025
@MoYingJi MoYingJi deleted the pr/f branch December 27, 2025 16:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants