本文档描述了 Nerd Fonts 中的 Homebrew Cask 系统,该系统支持所有修补字体的 Homebrew Cask 文件的自动化生成和分发。Homebrew Cask 允许 macOS 用户通过 Homebrew 包管理器轻松安装 Nerd Fonts,只需运行 brew install font-[fontname]-nerd-font 即可。有关生成 Cask 所需的字体存档的构建信息,请参阅字体存档。
Nerd Fonts 中的 Homebrew Cask 系统主要由两个组件构成:
来源: bin/scripts/generate-casks.sh .github/workflows/casks.yml
Homebrew Cask 是遵循特定格式的 Ruby 文件。generate-casks.sh 脚本以 Homebrew 所需的结构创建这些文件。
生成的 Cask 文件示例
来源: bin/scripts/generate-casks.sh62-71 bin/scripts/generate-casks.sh186-202
generate-casks.sh 脚本执行以下操作为每个 Nerd Font 创建 Cask 文件:
过程中的关键步骤:
archives 目录中的所有 ZIP 存档。fonts.json 中提取原始字体名称和 Cask 名称fc-query 来确定字体家族名称font-,后缀为 -nerd-font)来源: bin/scripts/generate-casks.sh204-252 bin/scripts/generate-casks.sh73-193
generate-casks.sh 脚本包含几个重要的函数:
| 功能 | 目的 |
|---|---|
| 检测包含 "Nerd" 或 "NF" 模式的字体家族名称 |
| 查找字体家族名称之间的共同词干 |
| 创建 Cask 文件的头部部分 |
| 写入包含字体声明的主体部分 |
| 完成 Cask 文件 |
该脚本处理各种边缘情况:
来源: bin/scripts/generate-casks.sh52-202
Nerd Fonts 仓库使用 GitHub Actions 自动化 Cask 生成和提交过程:
该工作流包含两个作业:
create-casks:
generate-casks.sh 生成 Cask 文件commit-casks:
尽管该工作流已设置为可能自动向官方 Homebrew 仓库创建拉取请求,但此功能目前已被注释掉并禁用。
来源: .github/workflows/casks.yml12-88
Cask 生成脚本也可以手动运行,以创建或更新 Homebrew Cask:
先决条件
archives/ 目录中(请先运行 ./archive-fonts.sh)fc-query 命令必须可用,用于字体家族检测来源: bin/scripts/generate-casks.sh16-21 bin/scripts/generate-casks.sh33-45
Cask 生成系统与整个 Nerd Fonts 发布流程集成:
当发布新的 Nerd Fonts 版本时:
这确保 Homebrew 用户可以在发布后尽快安装最新版本的 Nerd Fonts。
来源: .github/workflows/casks.yml9-11 bin/scripts/generate-casks.sh6-12
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(37f533)