简介
Shields 解决的是项目页「一眼看懂状态」的问题:把构建结果、下载量、代码覆盖率、License 这类指标统一成可嵌入的图片徽章,贴进 README 或文档首页后会跟着数据源自动更新。它面向写代码、维护仓库的人,而不是需要点选导出图片的设计工具。
徽章分两条路:动态徽章覆盖数百个服务的公开指标,分组有 Activity、Build、Code Coverage、Dependencies、Downloads、Funding、Issue Tracking、License、Monitoring、Rating、Size、Social、Test Results、Version 等;静态徽章只要按「标签-消息-颜色」拼地址。样式可选 flat、flat-square、plastic、for-the-badge 与 social,颜色支持十六进制、rgb、rgba、hsl、hsla 与 CSS 颜色名,logo 取 simple-icons 的 slug。
结论:只要项目托管在 GitHub、GitLab 这类平台,它基本是零成本的标配组件——不用注册、不收费、还能自托管;要接受的代价是它只能展示上游公开数据,徽章显示异常时得先去查数据源本身。
优缺点
- ✅ 样式与配色自由:style 支持 flat、flat-square、plastic、for-the-badge 与 social,颜色可用十六进制、rgb、rgba、hsl、hsla 与 CSS 颜色名,logo 取 simple-icons 图标。
- ✅ 服务覆盖面广:动态徽章覆盖数百个服务的指标,构建、下载量、代码覆盖率、License、社交关注等常见指标都有现成端点。
- ✅ 地址规则直观:静态徽章按「标签-消息-颜色」拼出图片地址即可,不需要注册或申请密钥就能嵌进 README 与文档。
- ✅ 渲染库可嵌入:官方 badge-maker 库用 npm install badge-maker 安装,可以在自己的应用程序里直接渲染出徽章图片。
- ❌ 门槛偏开发者向:徽章主要靠手写地址与查询参数拼装,没有面向普通用户的可视化生成表单,不熟悉路径规则的人需要先读文档。
- ❌ 依赖上游数据:动态徽章的指标来自第三方服务的公开接口,对方接口变动或限流时,徽章会显示异常或直接报错。
使用方法
- 先定路线:要展示现成指标进 Dynamic badges,要自定义内容走 Static Badges,两者都在顶栏的 Badges 目录里。
- 在徽章目录按分组挑端点(Build、Downloads、Code Coverage、License、Version 等),本地开发时可以用 Docker 起一个实例,把徽章请求指向自己的机器。
- 静态徽章直接在图片地址里拼内容:标签、消息、颜色三段用短横线连接,空格用下划线或 %20 表示,颜色可用十六进制或 CSS 颜色名。
- 进阶落地:用 npm install badge-maker 在自己的应用或 CI 脚本里渲染徽章,也可以把自托管实例接进私有看板,批量给内部服务生成状态图。
- 限制与注意:徽章服务不要求密钥与登录,取的是上游公开数据,对方限流时会返回错误徽章;cacheSeconds 控制缓存时长(示例 3600),调太小会显著增加请求量。
收费说明
完全免费:徽章渲染不收费,也没有账号、配额与付费墙,站内看不到价目表。运营靠社区捐赠维持,首页提供 Open Collective 入口,项目源码公开在 GitHub 上。自托管同样不产生授权费用,用官方 docker 镜像就能把实例部署在自己的服务器或内网,适合对可用性有要求的团队。
平台支持
输出物是图片,所以形态是「服务 + 任意宿主」:任何支持外链图片的 Markdown、HTML 或文档系统都能嵌入,浏览器打开文档站即可按分组查参数,不需要安装客户端,也没有官方移动端应用。它提供 npm 库 badge-maker 供程序化渲染,并提供 docker 镜像支持自托管;徽章接口不要求登录,也没有账号体系。国内可用性:文档站可以在国内直连打开,徽章图片走境外服务,对可用性要求高的项目建议用 docker 自托管,避免图片被拦时页面开天窗。
截图













