前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >工具资源系列之 github 上各式各样的小徽章从何而来?

工具资源系列之 github 上各式各样的小徽章从何而来?

原创
作者头像
雪之梦技术驿站
发布2019-06-22 11:27:51
2.5K0
发布2019-06-22 11:27:51
举报

前言

平时大家在在逛 github 时或多或少都看到过项目首页各式各样的小徽章,不知道你是否和我一样好奇这些小徽章都是哪来的呢?

首先我们先来一睹为快目前前端开发的三大主流框架: var ,看一看他们的 github 项目首页有哪些小徽章吧!

Coverage Status
Coverage Status
Downloads
Downloads
Version
Version
License
License
Chat
Chat
CircleCI
CircleCI
BrowserStack Status
BrowserStack Status
Chat
Chat
npm version
npm version
GitHub license
GitHub license
npm version
npm version
CircleCI Status
CircleCI Status
PRs Welcome
PRs Welcome

小结:

前端三大框架的徽章均不相同,由此可见,这应该不是 github 统一分发而是自定义行为!

虽然不是统一分配的,但也不是毫无规律可寻,想要制作专属的小徽章,其实真的很简单!

什么是徽章

徽章是一种小巧精美的小图标,一般配有相关文字进行辅助说明,富有表现力.

不仅出现于 github 项目主页,凡是能够表现图片的地方都可以出现徽章,本质上是一种 svg 格式的矢量图标.

下面以自定义 github-snowdreams1006-brightgreen.svg 徽章为例,简单认识一下徽章.

  • 在线链接

在线链接: github-snowdreams1006-brightgreen.svg

代码语言:txt
复制
https://img.shields.io/badge/github-snowdreams1006-brightgreen.svg
  • 浏览器效果

打开在线链接,并检查当前网页,豁然开朗,徽章是一种 svg 实现的矢量图标.

  • svg VS png

如果说 svg 是矢量图形而 png 却不是,所以不妨将 png 姑且称之为标量图形.

svg 是矢量图形,png 是标量图形,两者均能实现类似效果,只不过矢量图形不论怎么方法都能保持原样,并不会像 png 那样会失真而已.

既然两种均能表现相同的效果,现在我们就来演示一下 png 的实现效果.

svgpng 在线网站: https://cloudconvert.com/svg-to-svg 左侧的 svg 无论放大多少倍,依然保持原样,清晰度保持不变.右侧的 png 一旦放大,立马变得模糊不清.

如何使用徽章

大多数徽章都是 svg 格式,当然也不排除某些徽章是 png 格式,不论怎么说,一律当成图标使用就可以了.

如果你和我一样,希望在 markdown 文件中使用徽章,那么建议使用在线链接,或者引入本地 svg 相关文件.

徽章格式 : [![图片文字说明](图片源地址)](超链接地址) 即超链接内部嵌套图片

代码语言:txt
复制
[![github](https://img.shields.io/badge/github-snowdreams1006-brightgreen.svg)](https://github.com/snowdreams1006)
github
github

如果你是在 html 文件使用徽章,同样先取得在线徽章地址,然后按照 html 语法插入图片即可.

徽章格式 : <a href="超链接地址"><img src="图片源地址" alt="图片文字说明"></a> 即超链接内部嵌套图片

代码语言:txt
复制
<a href="https://github.com/snowdreams1006">
	<img src="https://img.shields.io/badge/github-snowdreams1006-brightgreen.svg" alt="github">
</a>
github
github

不论是什么语法,最核心最根本的获得到徽章链接,至于不同语言有着各自的语法,按照语言规则手动拼接就好.

  • Badge URL
代码语言:txt
复制
https://img.shields.io/badge/github-snowdreams1006-brightgreen.svg
  • Markdown
代码语言:txt
复制
[![github](https://img.shields.io/badge/github-snowdreams1006-brightgreen.svg)](https://github.com/snowdreams1006)
  • HTML
代码语言:txt
复制
<a href="https://github.com/snowdreams1006"><img src="https://img.shields.io/badge/github-snowdreams1006-brightgreen.svg" alt="github"></a>
  • Textile
代码语言:txt
复制
!https://img.shields.io/badge/github-snowdreams1006-brightgreen.svg!:https://github.com/snowdreams1006
  • RDOC
代码语言:txt
复制
{<img src="https://img.shields.io/badge/github-snowdreams1006-brightgreen.svg" alt="github" />}[https://github.com/snowdreams1006]
  • AsciiDoc
代码语言:txt
复制
image:https://img.shields.io/badge/github-snowdreams1006-brightgreen.svg["github", link="https://github.com/snowdreams1006"]
  • RST
代码语言:txt
复制
.. image:: https://img.shields.io/badge/github-snowdreams1006-brightgreen.svg
    :target: https://github.com/snowdreams1006

徽章分类

如果以徽章的格式为标准,那么可以分为svgpng 两类.

  • svg
代码语言:txt
复制
https://badge.fury.io/js/gitbook-plugin-mygitalk.svg
gitbook-plugin-mygitalk.svg
gitbook-plugin-mygitalk.svg
  • png
代码语言:txt
复制
https://badge.fury.io/js/gitbook-plugin-mygitalk.png
gitbook-plugin-mygitalk.png
gitbook-plugin-mygitalk.png

如果以徽章的样式为标准,那么可以分为默认样式和自定义样式两类.

  • 默认样式
代码语言:txt
复制
https://img.shields.io/github/stars/snowdreams1006/snowdreams1006.github.io.svg?style=social
GitHub stars
GitHub stars
  • 自定义样式
代码语言:txt
复制
https://img.shields.io/badge/%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7-%E9%9B%AA%E4%B9%8B%E6%A2%A6%E6%8A%80%E6%9C%AF%E9%A9%BF%E7%AB%99-brightgreen.svg
雪之梦技术驿站
雪之梦技术驿站

如果以徽章的内容数据是否动态为标准,那么可以分为静态数据和动态数据两类.

静态数据意味着数据本身是不变的,只要在线链接不变,那么生成的徽章永远不会改变,而动态数据意味着生成徽章的数据是动态变化的,即使在线链接不变,当数据本身发现变化时,徽章自然随之更新.

  • 静态数据
代码语言:txt
复制
https://img.shields.io/badge/github-snowdreams1006-brightgreen.svg
github-snowdreams1006-brightgreen.svg
github-snowdreams1006-brightgreen.svg
  • 动态数据
代码语言:txt
复制
https://badge.fury.io/js/gitbook-plugin-mygitalk.svg
gitbook-plugin-mygitalk.svg
gitbook-plugin-mygitalk.svg

静态数据示例中 github-snowdreams1006-brightgreen.svg 数据不会更改,自然生成的徽章也不会变.动态数据示例中 gitbook-plugin-mygitalk.svgnpm 的版本号,当项目升级后,版本号会发生更改,那么生成的徽章也会随之更新.

如果以徽章的内容数据来源为标准,那么可以有无数多的分类.

  • GitHub
代码语言:txt
复制
https://badgen.net/github/stars/snowdreams1006/gitbook-plugin-mygitalk
gitbook-plugin-mygitalk
gitbook-plugin-mygitalk
  • Npm
代码语言:txt
复制
https://badgen.net/npm/dt/gitbook-plugin-mygitalk
gitbook-plugin-mygitalk
gitbook-plugin-mygitalk
  • Docker
代码语言:txt
复制
https://badgen.net/docker/stars/library/centos
centos
centos

如果以徽章的内容数据用途为标准,那么也可以有无数多的分类.

  • 构建状态
代码语言:txt
复制
https://img.shields.io/travis/GitbookIO/gitbook.svg
Travis (.org)
Travis (.org)
  • 代码覆盖率
代码语言:txt
复制
https://img.shields.io/codecov/c/github/vuejs/vue.svg
Codecov
Codecov
  • 代码分析
代码语言:txt
复制
https://img.shields.io/github/languages/top/snowdreams1006/snowdreams1006.github.io.svg
GitHub top language
GitHub top language

徽章来源

徽章有不同的分类,不管是哪种分类,在线徽章最为简单便捷,下面就简单介绍下提供在线生成徽章的网站.

https://shields.io/

适用于绝大多数情况,默认按照徽章内容分类,Build,Code Coverage,Analysis 等多主题,同时支持自定义徽章和动态徽章.

如果徽章的主题明确,那么根据网站提供的主题对号入座即可在线生成徽章,下面以 gitbook-plugin-mygitalk 为例,简要说明如何获得相应徽章链接.

gitbook-plugin-mygitalkgitbook 的一款评论插件.

打开网站后按照分类,选择其中一个主题,点击进去后填写目标信息,即可在线生成徽章.

  • 浏览已支持的主体,选择 License 许可证主题.
  • 浏览已支持的 License 许可证列表,选择 NPM 许可证.
  • 填写好正确的 npm 包信息并实时预览,然后点击按钮复制徽章链接或者或者特定格式的徽章.
代码语言:txt
复制
![NPM](https://img.shields.io/npm/l/gitbook-plugin-mygitalk.svg)
NPM
NPM

按照主题生成徽章真的很简单,首先对号入座,然后按需生成相应徽章即可,唯一的要求就是对号入座!

如果默认提供的徽章主题没有适合自己的徽章,或者想要自定义徽章效果,那么也可以在线制作私人订制徽章.

  • 打开网站后往下拉,找到 Your Badge 区域,准备制作专属徽章.
  • 填写(Label)标签-(Message)信息-(Color)颜色等信息后,点击(Make Badge)生成徽章.
  • 点击生成徽章后默认会在当前标签页面打开该链接,手动复制链接并调整成目标格式即可.
代码语言:txt
复制
![微信公众号-雪之梦技术驿站-brightgreen.svg](https://img.shields.io/badge/%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7-%E9%9B%AA%E4%B9%8B%E6%A2%A6%E6%8A%80%E6%9C%AF%E9%A9%BF%E7%AB%99-brightgreen.svg)
微信公众号-雪之梦技术驿站-brightgreen.svg
微信公众号-雪之梦技术驿站-brightgreen.svg

https://badgen.net/

徽章内容来源种类较多,默认按照平台分类,按照特定规则生成徽章,需要手动拼接在线链接,略显繁琐.

代码语言:txt
复制
https://badgen.net/badge/:subject/:status/:color?icon=github
                   ──┬──  ───┬───  ──┬───  ──┬── ────┬──────
                     │       │       │       │       └─ Extra Options (label, list, icon, color)
                     │       │       │       │
                     │      TEXT    TEXT    RGB / COLOR_NAME ( optional )
                     │
                  "badge" - default (static) badge generator

虽然支持颜色,图标以及查询参数等高级用法,但是还是习惯性采用默认设置,下面动手开始制作徽章吧!

  • 切换到默认动态徽章选项卡,选择 GitHUb 徽章.
  • 选择 stars 徽章,将 micromatch 替换成目标信息.

/github/stars/micromatch/micromatch 替换成 /stars/snowdreams1006/snowdreams1006.github.io

  • 预览徽章效果并手动修改成目标格式.
代码语言:txt
复制
![snowdreams1006.github.io](https://badgen.net/github/stars/snowdreams1006/snowdreams1006.github.io)
snowdreams1006.github.io
snowdreams1006.github.io

除了支持动态徽章,同样也支持静态徽章,切换到 STATIC BADGES 选项卡,一起来生成静态徽章吧!

代码语言:txt
复制
![★★★★☆](https://badgen.net/badge/stars/%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%86)
★★★★☆
★★★★☆

按照徽章的在线链接规则,应该也支持自定义徽章,再次回顾一下链接规则:

规则 : https://badgen.net/badge/:subject/:status/:color ,如果是自定义动态链接,估计不支持吧!

代码语言:txt
复制
![微信公众号-雪之梦技术驿站](https://badgen.net/badge/%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7/%E9%9B%AA%E4%B9%8B%E6%A2%A6%E6%8A%80%E6%9C%AF%E9%A9%BF%E7%AB%99)
微信公众号-雪之梦技术驿站
微信公众号-雪之梦技术驿站

https://forthebadge.com/

扁平化的徽章,支持的徽章数量有限,不支持自定义徽章.

网站首页默认提供了一些预览徽章,左侧是复制 image 链接,右侧是复制 markdown 链接.

代码语言:txt
复制
[![forthebadge](https://forthebadge.com/images/badges/fuck-it-ship-it.svg)](https://forthebadge.com)
forthebadge
forthebadge

网站首页默认展示的徽章毕竟有限,如果找不到理想徽章,岂不是白介绍了这个网站,当然不能够!

VIEW ALL 查看目前支持的全部徽章,如果还是找不到徽章,那就真的没有.

https://badge.fury.io/

版本徽章,支持各类平台版本,包括 npm ,Ruby,Python,Go 等平台.

选择目标平台并输入包管理信息,即可在线生成各个类型的徽章版本.

代码语言:txt
复制
[![npm version](https://badge.fury.io/js/gitbook-plugin-mygitalk.svg)](https://badge.fury.io/js/gitbook-plugin-mygitalk)
npm version
npm version

排版布局

默认 markdown 实现的图片是依次排开的,无法自定义样式,而 markdown 语法同时也兼容 html 语法,因此我们可以用 html 语法实现居中对齐.

代码语言:txt
复制
<p align="center">
	<a href="https://circleci.com/gh/vuejs/vue/tree/dev">
		<img src="https://img.shields.io/circleci/project/github/vuejs/vue/dev.svg" alt="Build Status">
	</a>
	<a href="https://codecov.io/github/vuejs/vue?branch=dev">
		<img src="https://img.shields.io/codecov/c/github/vuejs/vue/dev.svg" alt="Coverage Status">
	</a>
	<a href="https://www.npmjs.com/package/vue">
		<img src="https://img.shields.io/npm/dm/vue.svg" alt="Downloads">
	</a>
	<a href="https://www.npmjs.com/package/vue">
		<img src="https://img.shields.io/npm/l/vue.svg" alt="License">
	</a>
	<a href="https://chat.vuejs.org/">
		<img src="https://img.shields.io/badge/chat-on%20discord-7289da.svg" alt="License">
	</a>
</p>
居中对齐
居中对齐

抛砖引玉

  • 社交化徽章
GitHub followers
GitHub followers
GitHub forks
GitHub forks
GitHub stars
GitHub stars
GitHub watchers
GitHub watchers
代码语言:txt
复制
![GitHub followers](https://img.shields.io/github/followers/snowdreams1006.svg?style=social)
![GitHub forks](https://img.shields.io/github/forks/snowdreams1006/snowdreams1006.github.io.svg?style=social)
![GitHub stars](https://img.shields.io/github/stars/snowdreams1006/snowdreams1006.github.io.svg?style=social)
![GitHub watchers](https://img.shields.io/github/watchers/snowdreams1006/snowdreams1006.github.io.svg?style=social)
  • 自定义徽章
github
github
wechat
wechat
慕课网
慕课网
简书
简书
csdn
csdn
博客园
博客园
掘金
掘金
思否
思否
开源中国
开源中国
腾讯云社区
腾讯云社区
代码语言:txt
复制
[![github](https://img.shields.io/badge/github-snowdreams1006-brightgreen.svg)](https://github.com/snowdreams1006)
[![wechat](https://img.shields.io/badge/%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7-%E9%9B%AA%E4%B9%8B%E6%A2%A6%E6%8A%80%E6%9C%AF%E9%A9%BF%E7%AB%99-brightgreen.svg)](http://weixin.qq.com/r/cy5CWvvE5Kabrb8593th)
[![慕课网](https://img.shields.io/badge/%E6%85%95%E8%AF%BE%E7%BD%91-%E9%9B%AA%E4%B9%8B%E6%A2%A6%E6%8A%80%E6%9C%AF%E9%A9%BF%E7%AB%99-brightgreen.svg)](https://www.imooc.com/u/5224488/articles)
[![简书](https://img.shields.io/badge/%E7%AE%80%E4%B9%A6-%E9%9B%AA%E4%B9%8B%E6%A2%A6%E6%8A%80%E6%9C%AF%E9%A9%BF%E7%AB%99-brightgreen.svg)](https://www.jianshu.com/u/577b0d76ab87)
[![csdn](https://img.shields.io/badge/csdn-%E9%9B%AA%E4%B9%8B%E6%A2%A6%E6%8A%80%E6%9C%AF%E9%A9%BF%E7%AB%99-brightgreen.svg)](https://blog.csdn.net/weixin_38171180)
[![博客园](https://img.shields.io/badge/%E5%8D%9A%E5%AE%A2%E5%9B%AD-%E9%9B%AA%E4%B9%8B%E6%A2%A6%E6%8A%80%E6%9C%AF%E9%A9%BF%E7%AB%99-brightgreen.svg)](https://www.cnblogs.com/snowdreams1006/)
[![掘金](https://img.shields.io/badge/%E6%8E%98%E9%87%91-%E9%9B%AA%E4%B9%8B%E6%A2%A6%E6%8A%80%E6%9C%AF%E9%A9%BF%E7%AB%99-brightgreen.svg)](https://juejin.im/user/582d5cb667f356006331e586)
[![思否](https://img.shields.io/badge/%E6%80%9D%E5%90%A6-%E9%9B%AA%E4%B9%8B%E6%A2%A6%E6%8A%80%E6%9C%AF%E9%A9%BF%E7%AB%99-brightgreen.svg)](https://segmentfault.com/u/snowdreams1006)
[![开源中国](https://img.shields.io/badge/%E5%BC%80%E6%BA%90%E4%B8%AD%E5%9B%BD-%E9%9B%AA%E4%B9%8B%E6%A2%A6%E6%8A%80%E6%9C%AF%E9%A9%BF%E7%AB%99-brightgreen.svg)](https://my.oschina.net/snowdreams1006)
[![腾讯云社区](https://img.shields.io/badge/%E8%85%BE%E8%AE%AF%E4%BA%91%E7%A4%BE%E5%8C%BA-%E9%9B%AA%E4%B9%8B%E6%A2%A6%E6%8A%80%E6%9C%AF%E9%A9%BF%E7%AB%99-brightgreen.svg)](https://cloud.tencent.com/developer/user/2952369/activities)
  • 进度条徽章
progress
progress
progress
progress
completed
completed
done
done
代码语言:txt
复制
[![progress](http://progressed.io/bar/25?title=progress)](https://github.com/fehmicansaglam/progressed.io)
[![progress](http://progressed.io/bar/50?title=progress)](https://github.com/fehmicansaglam/progressed.io)
[![completed](http://progressed.io/bar/75?title=completed)](https://github.com/fehmicansaglam/progressed.io)
[![done](http://progressed.io/bar/100?title=done)](https://github.com/fehmicansaglam/progressed.io)

参考文档

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 什么是徽章
  • 如何使用徽章
  • 徽章分类
  • 徽章来源
    • https://shields.io/
      • https://badgen.net/
        • https://forthebadge.com/
          • https://badge.fury.io/
          • 排版布局
          • 抛砖引玉
          • 参考文档
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档