菜单

语言数据

相关源文件

本文档说明了在 GitHub Readme Stats 中如何管理和使用编程语言的颜色数据。这些信息对于在“最流行的语言”卡片和其他出现语言可视化的地方,使用与 GitHub 官方配色方案一致的语言颜色进行渲染至关重要。

有关 GitHub API 集成的信息,请参阅 GitHub API 集成

概述

语言数据系统维护着编程语言名称与其对应十六进制颜色代码的映射关系。这些数据源自 GitHub 的官方 Linguist 存储库,并自动更新,以确保与 GitHub 平台保持一致。

来源:src/common/languageColors.json scripts/generate-langs-json.js

数据结构

语言颜色数据存储在一个全面的 JSON 文件中,该文件将语言名称映射到其对应的十六进制颜色代码。

src/common/languageColors.json

该文件包含数百个语言条目,格式如下:

每个键是编程语言的名称,该名称与 GitHub API 在查询存储库时返回的名称匹配;每个值是代表该语言在 GitHub 上官方颜色的十六进制颜色代码。

来源:src/common/languageColors.json1-624

更新机制

语言颜色数据通过一个自动化脚本保持最新。

scripts/generate-langs-json.js

这个 Node.js 脚本执行以下操作:

  1. 从 GitHub 的 Linguist 存储库获取最新的语言定义。
  2. 仅提取每种语言的颜色信息。
  3. 将更新后的映射写入 languageColors.json

关键实现细节包括:

来源:scripts/generate-langs-json.js1-31

自动化

更新过程通过 GitHub Actions 实现自动化。工作流程会定期运行脚本,以确保语言颜色数据与 GitHub 的最新定义保持同步。这确保了当 GitHub 添加对新语言的支持或更新现有颜色时,GitHub Readme Stats 会自动整合这些更改。

与卡片渲染器的集成

语言颜色数据主要由以下两个卡片渲染器使用:

  1. 最流行的语言卡片:使用语言颜色来渲染用户最常用语言的可视化。
  2. 存储库卡片:使用语言颜色显示存储库的主要语言。

当系统需要显示一种语言时:

  1. 它从 GitHub API 接收语言名称(例如,“JavaScript”、“Python”)。
  2. 它在 languageColors.json 中查找对应的颜色。
  3. 它将此颜色应用于卡片中的相应 SVG 元素。

结论

语言数据系统是 GitHub Readme Stats 的关键组成部分,它提供了一致且最新的编程语言颜色信息。通过与 GitHub 的 Linguist 存储库自动同步,它确保卡片中的语言可视化与其在 GitHub 平台上的可视化保持视觉上的一致性。

来源:src/common/languageColors.json scripts/generate-langs-json.js