git markdown 文件中小徽章实现原理和实现自己的版本控制逻辑

该博客介绍了如何在公司内部搭建Maven仓库后,模仿GitHub小徽章功能,创建一个用于统一查看和维护项目仓库版本号的服务。通过Python Flask框架,实现了一个简单的SVG响应服务,动态读取Maven仓库的版本信息并展示在徽章上。在本地Markdown文件中预览,可以实现类似GitHub的小徽章效果。
摘要由CSDN通过智能技术生成

来源需求

公司内部搭建maven仓库后,为了统一查看和维护各个项目仓库的版本号,想到了github中常见的小徽章功能 ,
```GitHub release`

	[![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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值