Browse Source

feat: add simple-icons

test
Amio 6 years ago
parent
commit
55970a895d
  1. 36
      libs/icons.js
  2. 6
      libs/serve-badge.js
  3. 5
      package-lock.json
  4. 1
      package.json

36
libs/icons.js

@ -1,20 +1,32 @@
const fs = require('fs')
const { join, parse } = require('path')
const icons = {}
function genIcons (iconFolder) {
const icons = {}
fs.readdirSync(join(__dirname, 'icons')).forEach(filename => {
const imageType = {
'.svg': 'svg+xml',
'.png': 'png'
}[parse(filename).ext]
fs.readdirSync(join(__dirname, iconFolder)).forEach(filename => {
const imageType = {
'.svg': 'svg+xml',
'.png': 'png'
}[parse(filename).ext]
if (!imageType) return
if (!imageType) return
const key = parse(filename).name
const b64 = fs.readFileSync(join(__dirname, 'icons', filename)).toString('base64')
const key = parse(filename).name
const iconFile = join(__dirname, iconFolder, filename)
const svg = fs.readFileSync(iconFile, 'utf8')
.replace(/fill="#\w{3,6}"/g, 'fill="white"')
.replace(/stroke="#\w{3,6}"/g, 'stroke="white"')
// .replace(/<path /g, '<path fill="white" ')
const b64 = Buffer.from(svg).toString('base64')
icons[key] = `data:image/${imageType};base64,${b64}`
})
icons[key] = `data:image/${imageType};base64,${b64}`
})
module.exports = icons
return icons
}
module.exports = {
builtin: genIcons('icons'),
simple: genIcons('../node_modules/simple-icons/icons')
}

6
libs/serve-badge.js

@ -1,6 +1,6 @@
const { send } = require('micro')
const badgen = require('badgen')
const icons = require('./icons.js')
const { send } = require('micro')
const { builtin, simple } = require('./icons.js')
module.exports = function serveBadge (req, res, options = {}) {
const { code = 200, maxAge = '86400' } = options
@ -15,7 +15,7 @@ module.exports = function serveBadge (req, res, options = {}) {
color: color,
style: style || hostStyle,
emoji: Boolean(emoji),
icon: icons[icon] || icon
icon: builtin[icon] || simple[icon]
}
res.setHeader('Content-Type', 'image/svg+xml;charset=utf-8')

5
package-lock.json

@ -3634,6 +3634,11 @@
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"dev": true
},
"simple-icons": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/simple-icons/-/simple-icons-1.7.1.tgz",
"integrity": "sha1-xoVlvjKsRsq4N7IZrnGuu6T9JVM="
},
"slice-ansi": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz",

1
package.json

@ -21,6 +21,7 @@
"millify": "^2.0.1",
"pretty-bytes": "^5.1.0",
"serve-marked": "0.3.0",
"simple-icons": "^1.7.1",
"xml2js": "^0.4.19"
},
"devDependencies": {

Loading…
Cancel
Save