来源需求
公司内部搭建maven仓库后,为了统一查看和维护各个项目仓库的版本号,想到了github中常见的小徽章功能 ,
````
[![GitHub release](https://img.shields.io/github/release/analysys/ans-android-sdk.svg)](https://github.com/analysys/ans-android-sdk/releases)
实现思路
通过浏览器F12查看徽章返回的内容,其实是svg,同时响应的content-type为image/svg+xml;charset=utf-8,比葫芦画瓢即可
服务搭建
python代码,简单实现方案
from flask import Flask, make_response
# git徽章功能
app = Flask(__name__)
@app.route("/mavenVersion/<projectName>", methods=['GET'])
def mavenVersion(projectName):
# projectName 即项目名称,这里去读取maven中的版本信息,然后替换html中的内容
# xxxxxxxxx
res = make_response(open('svg.html').read().replace('versionPlaceHolder','1.0.0'))
res.headers={
"content-type": "image/svg+xml;charset=utf-8",
}
return res
if __name__ == '__main__':
print(app.url_map)
# 部署后还需要公网
app.run(host="127.0.0.1", port=5000)
svg.html
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="110" height="20" role="img"
aria-label="release: v4.5.6"><title>release: vversionPlaceHolder</title>
<linearGradient id="s" x2="0" y2="100%">
<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
<stop offset="1" stop-opacity=".1"/>
</linearGradient>
<clipPath id="r">
<rect width="110" height="20" rx="3" fill="#fff"/>
</clipPath>
<g clip-path="url(#r)">
<rect width="50" height="20" fill="#555"/>
<rect x="49" width="60" height="20" fill="#007ec6"/>
<rect width="120" height="20" fill="url(#s)"/>
</g>
<g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif"
text-rendering="geometricPrecision" font-size="110">
<text x="255" y="140" transform="scale(.1)" fill="#fff" textLength="390">release</text>
<text x="780" y="140" transform="scale(.1)" fill="#fff" textLength="480">vversionPlaceHolder</text>
</g>
</svg>
然后在本地markdown文件预览,即可实现上述功能
[![GitHub release](http://127.0.0.1:5000/mavenVersion/projectName)](http://127.0.0.1:5000/mavenVersion/projectName)