chris48s
2019-01-29 21:22:28 +00:00
committed by Paul Melnikow
parent efdb9f3e51
commit daa06c2026
4 changed files with 16 additions and 8 deletions

View File

@@ -16,10 +16,13 @@ function loadLogos() {
// filename is eg, github.svg
const svg = fs.readFileSync(`${logoDir}/${filename}`).toString()
const base64 = svg2base64(svg)
// logo is monochrome if it only has one fill= statement
const isMonochrome = (svg.match(/fill="(.+?)"/g) || []).length === 1
// eg, github
const name = filename.slice(0, -'.svg'.length).toLowerCase()
logos[name] = {
isMonochrome,
svg,
base64,
}

View File

@@ -55,9 +55,9 @@ function getShieldsIcon({ name, color }) {
return undefined
}
const { svg, base64 } = logos[key]
const { svg, base64, isMonochrome } = logos[key]
const svgColor = toSvgColor(color)
if (svgColor) {
if (svgColor && isMonochrome) {
return svg2base64(svg.replace(/fill="(.+?)"/g, `fill="${svgColor}"`))
} else {
return base64

View File

@@ -24,13 +24,18 @@ describe('Logo helpers', function() {
})
test(prepareNamedLogo, () => {
// These two strings are identical except for characters 159-165 which
// differ.
given({ name: 'npm' }).expect(
// NPM uses multiple colors so the color param should be ignored
const npmLogo =
'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZD0iTTAgMGg0MHY0MEgwVjB6IiBmaWxsPSIjY2IwMDAwIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTcgN2gyNnYyNmgtN1YxNGgtNnYxOUg3eiIvPjwvc3ZnPgo='
given({ name: 'npm' }).expect(npmLogo)
given({ name: 'npm', color: 'blue' }).expect(npmLogo)
// dependabot only uses one color so the color param should be respected
given({ name: 'dependabot' }).expect(
'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTTkuNzAyLjc3OHY0LjY0OWgzLjA2OFY2Ljk4SDEuNTI4djcuMjM0SDB2NC42NDloMS41Mjh2My42MTdoMjAuOTQ0di0zLjYxN0gyNHYtNC42NDloLTEuNTI4VjYuOThoLTguMTc0Vi43Nzh6bS0uNTIzIDExLjg3bDEuMDIgMS4wNDQtMy4wNDQgMy4wOTUtMi4wNS0yLjA1IDEuMDItMS4wNDUgMS4wMyAxLjAzMnptOC42OTcgMGwxLjAxOCAxLjA0NC0zLjA2OCAzLjA5NS0yLjAzNy0yLjA1IDEuMDE5LTEuMDQ1IDEuMDE4IDEuMDMyeiIvPjwvc3ZnPg=='
)
given({ name: 'npm', color: 'blue' }).expect(
'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZD0iTTAgMGg0MHY0MEgwVjB6IiBmaWxsPSIjMDA3ZWM2Ii8+PHBhdGggZmlsbD0iIzAwN2VjNiIgZD0iTTcgN2gyNnYyNmgtN1YxNGgtNnYxOUg3eiIvPjwvc3ZnPgo='
given({ name: 'dependabot', color: 'blue' }).expect(
'data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0iIzAwN2VjNiI+PHBhdGggZD0iTTkuNzAyLjc3OHY0LjY0OWgzLjA2OFY2Ljk4SDEuNTI4djcuMjM0SDB2NC42NDloMS41Mjh2My42MTdoMjAuOTQ0di0zLjYxN0gyNHYtNC42NDloLTEuNTI4VjYuOThoLTguMTc0Vi43Nzh6bS0uNTIzIDExLjg3bDEuMDIgMS4wNDQtMy4wNDQgMy4wOTUtMi4wNS0yLjA1IDEuMDItMS4wNDUgMS4wMyAxLjAzMnptOC42OTcgMGwxLjAxOCAxLjA0NC0zLjA2OCAzLjA5NS0yLjAzNy0yLjA1IDEuMDE5LTEuMDQ1IDEuMDE4IDEuMDMyeiIvPjwvc3ZnPg=='
)
it('preserves color if light logo on dark background', function() {

View File

@@ -1 +1 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M2.594 0a.514.514 0 0 0-.344.11.404.404 0 0 0-.133.306v23.197c0 .124.048.246.145.312.096.065.208.075.332.075h5.593c.13 0 .243-.02.334-.093.092-.072.131-.2.112-.317l.002.023v-1.467a.367.367 0 0 0-.16-.301.612.612 0 0 0-.344-.087H5.613c-.11 0-.17-.02-.191-.037-.022-.016-.032-.03-.032-.1V2.408c0-.071.012-.094.041-.116.03-.023.102-.05.239-.05h2.488c.124 0 .235-.01.332-.076.097-.066.145-.188.145-.311V.416a.396.396 0 0 0-.157-.323A.583.583 0 0 0 8.131 0z"/><path d="M20.958 14.47c-1.482.414-2.489 1.273-2.489 2.684v4.042c0 3.017-2.909 2.685-6.517 2.685h-.56c-.223 0-.363-.083-.363-.277V22.22c0-.194.112-.277.336-.277h.447c2.154 0 3.664.47 3.664-1.245v-3.876c0-1.19.84-2.851 2.517-3.46.112-.028.14-.083.14-.138 0-.056-.028-.139-.14-.194-1.538-.692-2.517-1.827-2.517-3.184V5.473c0-1.689-1.51-3.377-3.664-3.377h-.447c-.224 0-.336-.083-.336-.277V.435c0-.194.14-.277.364-.277h.56c3.607 0 6.544 2.547 6.544 5.564v3.682c0 1.384 1.007 2.186 2.517 2.712.56.166.867.194.867.637v1.163c.028.249-.251.36-.923.553" fill="#2eace3"/><path d="M11.576 8.33c-.406 0-.785.303-.785.72v1.328c0 .389.35.721.785.721h1.482c.406 0 .784-.304.784-.72V9.05c0-.388-.348-.72-.784-.72z"/></svg>
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M2.594 0a.514.514 0 0 0-.344.11.404.404 0 0 0-.133.306v23.197c0 .124.048.246.145.312.096.065.208.075.332.075h5.593c.13 0 .243-.02.334-.093.092-.072.131-.2.112-.317l.002.023v-1.467a.367.367 0 0 0-.16-.301.612.612 0 0 0-.344-.087H5.613c-.11 0-.17-.02-.191-.037-.022-.016-.032-.03-.032-.1V2.408c0-.071.012-.094.041-.116.03-.023.102-.05.239-.05h2.488c.124 0 .235-.01.332-.076.097-.066.145-.188.145-.311V.416a.396.396 0 0 0-.157-.323A.583.583 0 0 0 8.131 0z" fill="#000"/><path d="M20.958 14.47c-1.482.414-2.489 1.273-2.489 2.684v4.042c0 3.017-2.909 2.685-6.517 2.685h-.56c-.223 0-.363-.083-.363-.277V22.22c0-.194.112-.277.336-.277h.447c2.154 0 3.664.47 3.664-1.245v-3.876c0-1.19.84-2.851 2.517-3.46.112-.028.14-.083.14-.138 0-.056-.028-.139-.14-.194-1.538-.692-2.517-1.827-2.517-3.184V5.473c0-1.689-1.51-3.377-3.664-3.377h-.447c-.224 0-.336-.083-.336-.277V.435c0-.194.14-.277.364-.277h.56c3.607 0 6.544 2.547 6.544 5.564v3.682c0 1.384 1.007 2.186 2.517 2.712.56.166.867.194.867.637v1.163c.028.249-.251.36-.923.553" fill="#2eace3"/><path d="M11.576 8.33c-.406 0-.785.303-.785.72v1.328c0 .389.35.721.785.721h1.482c.406 0 .784-.304.784-.72V9.05c0-.388-.348-.72-.784-.72z" fill="#000"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB