json - 具有动态颜色的自定义 GitHub 徽章
问题描述
我很难创建一个动态改变颜色的shields.io徽章。
我可以使用 JSON 响应将文本解析为徽章并将颜色设置为橙色:
https://img.shields.io/badge/dynamic/json.svg?label=custom&url=https://jsonplaceholder.typicode.com/posts&query=$[1].id&colorB=orange
效果很好...
但是,我想根据规则更改颜色。我也可能会返回 JSON 中的 HEX 颜色以解析为徽章。我尝试了公共API来获得随机颜色并测试行为:
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
:
我希望这样的东西与#D0BB79
颜色正确匹配:
如何使颜色也动态?Coveralls.io、Codecov.io或SonarCloud.io提供了示例动态彩色徽章。
解决方案
我遇到了类似的麻烦,最终使用了一个名为anybadge的命令行工具,它以阈值作为参数。这允许您在一个命令中生成具有动态颜色的徽章:
anybadge -l pylint -v 2.22 -f pylint.svg 2=red 4=orange 8=yellow 10=green
颜色可以通过十六进制颜色代码或一组预定义的颜色名称来定义。
这里的主要区别在于这不是通过引用 URL 来完成的,因此不能以相同的方式嵌入。我在我的 CI 管道中使用它来生成各种徽章,然后将它们存储为项目工件并在我的项目中引用它们README.md
。
推荐阅读
- graph-databases - 为什么 JanusGraph 的 addVertex() 比带有图遍历的 addV() 慢得多?
- c# - 如何将映射实体包含到 NotMapped 实体?
- php - mysql 结果不同,具体取决于查询值是通过准备好的语句还是在 sql 字符串中
- mysql - 排序时MySQL触发变量错误
- python - 为什么这个包含 7 个项目的 dict 只消耗 368 个字节?
- html - 当我在谷歌浏览器上检查我的网页时,我的部分显示得更高?
- java - 按顺序使用两个拦截器
- python - 如何在python中创建有效的共现?
- reactjs - 在 setState 之后,React 应用程序中不会发生更改
- python - 在python的嵌套字典中添加值