From 8f3d4185df8e80599bc30ebd9630ab8b2effa0de Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 5 Jul 2019 14:04:47 +1200 Subject: [PATCH 1/4] add more aliases for simple icons --- lib/load-simple-icons.js | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/lib/load-simple-icons.js b/lib/load-simple-icons.js index 47af134356963..13f7dc7cf87a6 100644 --- a/lib/load-simple-icons.js +++ b/lib/load-simple-icons.js @@ -4,22 +4,42 @@ const simpleIcons = require('simple-icons') const { svg2base64 } = require('./svg-helpers') function loadSimpleIcons() { + // Apply other key bindings Object.keys(simpleIcons).forEach(key => { - const k = key.toLowerCase().replace(/ /g, '-') - if (k !== key) { - simpleIcons[k] = simpleIcons[key] + if (key !== key.toLowerCase()) { + simpleIcons[key.toLowerCase()] = simpleIcons[key] delete simpleIcons[key] + key = key.toLowerCase() } - simpleIcons[k].base64 = { + + const keys = new Set([ + key.replace(/ /g, '-'), + key.replace(/ /g, '-').replace(/[^-\w]/g, ''), + key.replace(/[^\w]/g, ''), + ]) + + keys.forEach(k => { + if (k !== key) simpleIcons[k] = simpleIcons[key] + }) + }) + + Object.keys(simpleIcons).forEach(key => { + simpleIcons[key].base64 = { default: svg2base64( - simpleIcons[k].svg.replace(' Date: Fri, 5 Jul 2019 14:21:25 +1200 Subject: [PATCH 2/4] only accept specific characters (a-z0-9) case insensitive --- lib/load-simple-icons.js | 19 ++++--------------- lib/logos.js | 2 +- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/lib/load-simple-icons.js b/lib/load-simple-icons.js index 13f7dc7cf87a6..205ca891a71ff 100644 --- a/lib/load-simple-icons.js +++ b/lib/load-simple-icons.js @@ -6,24 +6,13 @@ const { svg2base64 } = require('./svg-helpers') function loadSimpleIcons() { // Apply other key bindings Object.keys(simpleIcons).forEach(key => { - if (key !== key.toLowerCase()) { - simpleIcons[key.toLowerCase()] = simpleIcons[key] + const _key = key.toLowerCase().replace(/[^a-z0-9]/gi, '') + if (key !== _key) { + simpleIcons[_key] = simpleIcons[key] delete simpleIcons[key] - key = key.toLowerCase() + key = _key } - const keys = new Set([ - key.replace(/ /g, '-'), - key.replace(/ /g, '-').replace(/[^-\w]/g, ''), - key.replace(/[^\w]/g, ''), - ]) - - keys.forEach(k => { - if (k !== key) simpleIcons[k] = simpleIcons[key] - }) - }) - - Object.keys(simpleIcons).forEach(key => { simpleIcons[key].base64 = { default: svg2base64( simpleIcons[key].svg.replace( diff --git a/lib/logos.js b/lib/logos.js index adbda6c0b6e47..b37cec1fbddb9 100644 --- a/lib/logos.js +++ b/lib/logos.js @@ -94,7 +94,7 @@ function getSimpleIconStyle({ icon, style }) { } function getSimpleIcon({ name, color, style }) { - const key = name.replace(/ /g, '-') + const key = name.replace(/[^a-z0-9]/gi, '') if (!(key in simpleIcons)) { return undefined From 477e5accffa5fb364a4e668609c90756dbc992be Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 5 Jul 2019 15:09:16 +1200 Subject: [PATCH 3/4] tidy up From 135703165a069c232ffc75cc8ceca1d769e02a92 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Tue, 9 Jul 2019 09:05:51 +1200 Subject: [PATCH 4/4] update to remove any non specific characters Only accept the following characters and remove anything else: a-z (case insensitive) 0-9 - . --- lib/load-simple-icons.js | 5 ++++- lib/logos.js | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/load-simple-icons.js b/lib/load-simple-icons.js index 205ca891a71ff..5821c993bea8c 100644 --- a/lib/load-simple-icons.js +++ b/lib/load-simple-icons.js @@ -6,7 +6,10 @@ const { svg2base64 } = require('./svg-helpers') function loadSimpleIcons() { // Apply other key bindings Object.keys(simpleIcons).forEach(key => { - const _key = key.toLowerCase().replace(/[^a-z0-9]/gi, '') + const _key = key + .toLowerCase() + .replace(/ /g, '-') + .replace(/[^\-.a-z0-9]/gi, '') if (key !== _key) { simpleIcons[_key] = simpleIcons[key] delete simpleIcons[key] diff --git a/lib/logos.js b/lib/logos.js index b37cec1fbddb9..37c989b8e98e2 100644 --- a/lib/logos.js +++ b/lib/logos.js @@ -94,7 +94,7 @@ function getSimpleIconStyle({ icon, style }) { } function getSimpleIcon({ name, color, style }) { - const key = name.replace(/[^a-z0-9]/gi, '') + const key = name.replace(/ /g, '-').replace(/[^\-.a-z0-9]/gi, '') if (!(key in simpleIcons)) { return undefined