仓库卡片(也称为“pin card”)是一个动态 SVG 组件,可以以一种视觉上吸引人的方式展示 GitHub 仓库。用户可以将这些卡片嵌入到他们的 GitHub README 文件中,以突出特定仓库,显示诸如仓库名称、描述、主要语言、星数和关注数等关键信息。
有关 GitHub Readme Stats 系统中其他卡片类型的信息,请参阅
仓库卡片系统遵循请求-处理-渲染的流程。当用户将仓库卡片嵌入其 README 时,会向 `/api/pin` 端点发出请求,该端点从 GitHub 的 API 获取仓库数据并返回生成的 SVG 图像。
仓库卡片示例
https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats
渲染为显示仓库信息的 SVG 卡片。
系统流程图
来源:api/pin.js12-105 src/cards/repo-card.js57-91
仓库卡片通过 `/api/pin` 端点访问,该端点处理用户请求并返回生成的 SVG。
| 参数 | 描述 | 默认 |
|---|---|---|
username | 仓库所有者的 GitHub 用户名 | 必填 |
repo | 仓库名称 | 必填 |
title_color | 卡片标题颜色 | 基于主题 |
text_color | 正文文本颜色 | 基于主题 |
icon_color | 图标颜色 | 基于主题 |
bg_color | 背景颜色 | 基于主题 |
hide_border | 隐藏卡片边框 | false |
theme | 主题名称 | "default_repocard" |
border_color | 卡片边框颜色 | 基于主题 |
border_radius | 圆角半径 | 4.5 |
show_owner | 显示包含所有者的完整仓库名称 | false |
description_lines_count | 要显示的描述行数 | 最多 3 行 |
locale | 翻译的语言代码 | 英语 |
系统从 GitHub 的 GraphQL API 获取仓库数据。数据结构包含关于仓库的全面信息。
来源:src/cards/repo-card.js57-67 tests/renderRepoCard.test.js9-22
renderRepoCard 函数根据仓库数据和用户指定的选项生成 SVG 卡片。
来源:src/cards/repo-card.js57-191
渲染过程处理几个方面
来源:src/cards/repo-card.js82-107 src/cards/repo-card.js113-151
对描述进行处理,确保其在卡片内妥善显示
来源:src/cards/repo-card.js90-106 tests/renderRepoCard.test.js92-102 tests/renderRepoCard.test.js146-160
卡片使用灵活的布局系统显示仓库统计信息
这些元素仅在可用时显示(例如,语言可能为 null,零星/关注数将被隐藏)。
来源:src/cards/repo-card.js123-150 tests/renderRepoCard.test.js248-274
仓库卡片与主题系统集成,可在不同卡片间提供一致的样式。
来源:src/cards/repo-card.js108-121 tests/renderRepoCard.test.js175-199 tests/renderRepoCard.test.js201-221
仓库卡片支持文本元素的本地化
来源:src/cards/repo-card.js108-111 tests/renderRepoCard.test.js298-321 api/pin.js44-54
要将仓库卡片添加到您的 GitHub README 中,请使用以下 markdown
显示仓库所有者
https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&show_owner=true
自定义主题
https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&theme=radical
自定义颜色
https://github-readme-stats.vercel.app/api/pin/?username=anuraghazra&repo=github-readme-stats&title_color=f00&icon_color=0f0&text_color=00f&bg_color=fff
来源:tests/renderRepoCard.test.js46-53 tests/renderRepoCard.test.js147-221
仓库卡片系统处理各种错误情况
发生错误时,将渲染一个错误卡片而不是仓库卡片。
来源:api/pin.js32-54 api/pin.js88-104 tests/pin.test.js98-203
卡片高度根据描述长度动态调整
来源: src/cards/repo-card.js104-106 tests/renderRepoCard.test.js343-371
为了保持卡片的视觉美观
来源: src/cards/repo-card.js153 tests/renderRepoCard.test.js55-89
仓库卡片系统拥有全面的测试
来源: tests/renderRepoCard.test.js1-372 tests/pin.test.js1-204