zoukankan      html  css  js  c++  java
  • 造一个Badge Service(徽章)的轮子

    什么是Badge Service

    细心的读者朋友一定在很多Github的Repo,npm的package页面看到过诸如Dependence DevDependence的徽章。这些徽章是干什么用的?

    大家看到上文中我引用的Badge的左侧,是DownloadsBuildDependency之类的,不难猜出,这些Badge是用于一些信息的统计,然后以图片的形式展示出来。比如我的一个小项目Delta是用js写的,我使用了Travis CI来进行持续的编译和测试。每次我checkin了新的代码,Travis CI就会对最新的代码进行build,然后把build的结果,画成一张矢量图,放在https://travis-ci.org/rebornix/delta.svg下。于是同学们就能及时地从我的项目主页看到该项目的最近build情况,如果挂了,就可以肆意地爆我。

    其实这就是个把numbers变成图片的小玩意。

    Shield Badge

    为了让.NET世界的朋友也和前端朋友们一样酷,我们决定在Visual Studio Gallery中也提供这样的服务。很快我写了一个版本,用来生成PNG。效果还不错,但是PNG唯一的缺点就是无法scale,如果能生成矢量图会更好。由于.NET在绘制矢量图上天生残疾,我尝试着找找有没有现成的方案。于是我发现了Sheild.io.

    Shield提供了一套绘制badge的方案,并且开源了nodejs、php、go等语言的实现方式,甚至他们提供了一个服务Shield.io方便大家使用。这几乎是完美的。

    那为啥我要造轮子

    原因也挺简单的,shield并不可能像Azure,AWS那样提供SLA(我们也不该要求他们提供)。我们要尽可能地为我们的网站减少这样的external dependency。既然他们开源了,我干脆就写了一个.NET版本,通过Nuget管理Assembly,然后把这个服务run在我们自己的机器上。我给它取了个很俗的名字,叫DotBadge,大家可以前去Github围观。

    如何使用

    大家可以通过nuget下载dll来引用,另外为了大家更好地玩耍已经体验,我写了个小小的命令行工具。

    命令行工具

    下载

    打开命令行,到DotBadge的目录下,执行 DotBadge.exe --help.

    例子

    DotBadge.exe -sb "Downloads" -st "1000" -c "Green" -sl 0

    demo1

    DotBadge.exe -sb "Build" -st "fail" -c "Red" -sl 0 

    demo2

    DotBadge.exe -sbhttps://github.com/rebornix/DotBadge/edit/master/Readme.md# "Star" -st "234" -c "#ddf" -sl 1 

    demo3

    如何放到你自己的项目里面

    在Nuget的 Package Manager Console里面运行

    PM> Install-Package DotBadge

     或者使用Nuget的UI tool搜索下载。

    例子

    using DotBadge;
    using System.IO;
    
    namespace Badge
    {
        class Program
        {
            static void Main(string[] args)
            {
                var bp = new BadgePainter();
                File.WriteAllText(@"C:UserspengDesktop
    uget.svg", bp.DrawSVG("Badge", ".Net", ColorScheme.Red, Style.Flat));
    
            }
        }
    }

    造轮子充满乐趣

    Yeah

    Report Bug

  • 相关阅读:
    Solr环境配置
    SolrJ解析MoreLikeThis查询结果
    思维导图软件PersonalBrain 6.0.6.4破解版使用
    离散对数-详解
    转:pptp和l2tp的区别
    DiffieHellman Key Exchange (DH)源代码
    磁盘IOPS计算
    转:TCP/IP Network Performance Benchmarks and Tools
    转:弄清楚你的业务类型——OLTP or OLAP
    U8软件的端口
  • 原文地址:https://www.cnblogs.com/rebornix/p/4461388.html
Copyright © 2011-2022 走看看