具有动态颜色的自定义GitHub徽章

时间:2018-11-19 17:51:59

标签: json github colors badge shields.io

我努力创建一个shields.io徽章来动态改变颜色。

我能够使用JSON响应将文本解析为badge并将颜色设置为橙色:

https://img.shields.io/badge/dynamic/json.svg?label=custom&url=https://jsonplaceholder.typicode.com/posts&query=$[1].id&colorB=orange

enter image description here

效果很好...


但是,我想根据规则更改颜色。我可能还会以JSON格式返回十六进制颜色,以将其解析为徽章。我尝试使用公共API来获得随机颜色并 test 行为:

http://www.colr.org/json/color/random

我第一次使用JsonPath $.colors[0].hex随机获得颜色,并将其作为动态值和颜色放置在徽章URL中:

https://img.shields.io/badge/dynamic/json.svg?label=custom&url=http://www.colr.org/json/color/random&query=$.colors[0].hex&colorB=$.colors[0].hex

无论颜色是随机选择的,结果始终是绿色的(最后生成的结果是#D0BB79

enter image description here

我希望能像这样正确匹配#D0BB79颜色:

enter image description here

如何使颜色动态化?带有Coveralls.ioCodecov.ioSonarCloud.io的示例动态彩色徽章。

1 个答案:

答案 0 :(得分:1)

我遇到了类似的麻烦,最终使用了名为anybadge的命令行工具,该工具将阈值作为参数。这使您可以在一个命令中生成具有动态颜色的徽章:

anybadge -l pylint -v 2.22 -f pylint.svg 2=red 4=orange 8=yellow 10=green

可以通过十六进制颜色代码或一组预先定义的颜色名称定义颜色。

这里的主要区别是,这不是通过引用URL来完成的,因此不能以相同的方式嵌入。我在CI管道中使用它来生成各种徽章,然后将它们存储为项目工件,并在我的项目README.md中引用它们。