This is a little fix I’ve been meaning to make for a while. Normally it manifests in the codetally badge, but that badge isn’t working right now. Here’s a static example, where the right text is wrapped in spaces: https://img.shields.io/badge/foo-%20bar%20-blue.svg The spaces get included in width computation, though I suppose ignored when the svg renders, resulting in bad letter spacing. With this fix, it renders the same as https://img.shields.io/badge/foo-bar-blue.svg
gh-badges
Installation
npm install gh-badges
Usage
On the console
npm install -g gh-badges
badge build passed :green .png > mybadge.png
As a library
const { BadgeFactory } = require('gh-badges')
const bf = new BadgeFactory()
const format = {
text: ['build', 'passed'],
colorscheme: 'green',
template: 'flat',
}
const svg = bf.create(format)
Format
The format is the following:
{
text: [ 'build', 'passed' ], // Textual information shown, in order
format: 'svg', // Also supports json
colorscheme: 'green',
// or ...
colorA: '#555',
colorB: '#4c1',
// See templates/ for a list of available templates.
// Each offers a different visual design.
template: 'flat',
}
See also
- colorscheme.json for the
colorschemeoption - templates/ for the
templateoption
Defaults
If you want to use a colorscheme, head to lib/colorscheme.json. Each scheme
has a name and a CSS/SVG color for the color used in the first box (for the
first piece of text, field colorA) and for the one used in the second box
(field colorB).
"green": {
"colorB": "#4c1"
}
Both colorA and colorB have default values. Usually, the first box uses the
same dark grey, so you can rely on that default value by not providing a
"colorA" field (such as above).
You can also use the "colorA" and "colorB" fields directly in the badges if
you don't want to make a color scheme for it. In that case, remove the
"colorscheme" field altogether.