diff --git a/.github/ISSUE_TEMPLATE/icon_request.md b/.github/ISSUE_TEMPLATE/icon_request.md index cff00e350a1d..2f168aac47cf 100644 --- a/.github/ISSUE_TEMPLATE/icon_request.md +++ b/.github/ISSUE_TEMPLATE/icon_request.md @@ -4,17 +4,26 @@ about: Request a new icon for SimpleIcons labels: new icon --- - + + When requesting a new icon please provide the following information: +--> **Name:** **Website:** -**Official resources for icon and color:** - - +**Alexa rank:** + - +**Official resources for icon and color:** + + + diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index a58f1206456a..1ebda1f55f9f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -7,6 +7,10 @@ https://petershaggynoble.github.io/MDI-Sandbox/simpleicons/preview/ --> **Issue:** +**Alexa rank:** + ### Checklist - [ ] I updated the JSON data in `_data/simple-icons.json` diff --git a/.svglintrc.js b/.svglintrc.js index 7f246c6fff55..6b248565644a 100644 --- a/.svglintrc.js +++ b/.svglintrc.js @@ -3,6 +3,8 @@ const { htmlFriendlyToTitle } = require("./scripts/utils.js"); const getBounds = require("svg-path-bounding-box"); const titleRegexp = /(.+) icon$/; +const svgRegexp = /^\r?\n?$/; + const iconSize = 24; const iconFloatPrecision = 3; const iconIgnored = require("./.svglint-ignored.json"); @@ -70,6 +72,14 @@ module.exports = { reporter.error(`Size of must be exactly ${iconSize} in one dimension; the size is currently ${width} x ${height}`); } }, + function(reporter, $, ast) { + reporter.name = "extraneous"; + + const rawSVG = $.html(); + if (!svgRegexp.test(rawSVG)) { + reporter.error("Unexpected character(s) detected outside the opening and/or closing tags"); + } + }, ] } }; diff --git a/_data/simple-icons.json b/_data/simple-icons.json index 2c2467fcd9f9..ed5f540696fc 100644 --- a/_data/simple-icons.json +++ b/_data/simple-icons.json @@ -1425,6 +1425,11 @@ "hex": "073551", "source": "https://curl.haxx.se/logo/" }, + { + "title": "Cypress", + "hex": "17202C", + "source": "https://cypress.io" + }, { "title": "D3.js", "hex": "F9A03C", @@ -2967,8 +2972,8 @@ }, { "title": "Intercom", - "hex": "1F8DED", - "source": "https://www.intercom.io" + "hex": "6AFDEF", + "source": "https://www.intercom.com/press" }, { "title": "Internet Archive", @@ -4030,6 +4035,11 @@ "hex": "57A143", "source": "https://github.com/neovim/neovim.github.io/tree/master/logos" }, + { + "title": "NestJS", + "hex": "E0234E", + "source": "https://nestjs.com/" + }, { "title": "NetApp", "hex": "0067C5", @@ -4820,6 +4830,11 @@ "hex": "FF8C00", "source": "https://qiwi.com/" }, + { + "title": "Qt", + "hex": "41CD52", + "source": "https://qt-brandbook.webflow.io/design" + }, { "title": "Qualcomm", "hex": "3253DC", @@ -5225,6 +5240,11 @@ "hex": "86BC40", "source": "http://design.sencha.com/" }, + { + "title": "Sennheiser", + "hex": "000000", + "source": "https://sennheiser.com" + }, { "title": "Sensu", "hex": "89C967", diff --git a/icons/bmcsoftware.svg b/icons/bmcsoftware.svg index e5425e140edc..c4199fa106f7 100644 --- a/icons/bmcsoftware.svg +++ b/icons/bmcsoftware.svg @@ -1 +1 @@ -BMC Software icon +BMC Software icon diff --git a/icons/cypress.svg b/icons/cypress.svg new file mode 100644 index 000000000000..fcd92bc40599 --- /dev/null +++ b/icons/cypress.svg @@ -0,0 +1 @@ +Cypress icon \ No newline at end of file diff --git a/icons/nestjs.svg b/icons/nestjs.svg new file mode 100644 index 000000000000..57950f9e3c90 --- /dev/null +++ b/icons/nestjs.svg @@ -0,0 +1 @@ +NestJS icon \ No newline at end of file diff --git a/icons/qt.svg b/icons/qt.svg new file mode 100644 index 000000000000..4c38e605ce56 --- /dev/null +++ b/icons/qt.svg @@ -0,0 +1 @@ +Qt icon \ No newline at end of file diff --git a/icons/sennheiser.svg b/icons/sennheiser.svg new file mode 100644 index 000000000000..5fdf2a0988d7 --- /dev/null +++ b/icons/sennheiser.svg @@ -0,0 +1 @@ +Sennheiser icon diff --git a/index.html b/index.html index 13d492e25e47..d75a67475255 100644 --- a/index.html +++ b/index.html @@ -29,10 +29,6 @@ {% endif %} {% assign filename = filename | downcase %} - {% assign filename = filename | replace: "+", "plus" %} - {% assign filename = filename | replace: ".", "-dot-" %} - {% assign filename = filename | replace: "&", "-and-" %} - {% assign filename = filename | replace: " ", "" | replace: "!", "" | replace: ":", "" | replace: "’", "" | replace: "'", "" %} {% assign filename = filename | replace: "à", "a" | replace: "á", "a" | replace: "â", "a" | replace: "ã", "a" | replace: "ä", "a" %} {% assign filename = filename | replace: "ç", "c" | replace: "č", "c" | replace: "ć", "c" %} {% assign filename = filename | replace: "è", "e" | replace: "é", "e" | replace: "ê", "e" | replace: "ë", "e" %} @@ -44,6 +40,12 @@ {% assign filename = filename | replace: "ý", "y" | replace: "ÿ", "y" %} {% assign filename = filename | replace: "ž", "z" | replace: "ź", "z" %} + {% assign searchTerm = filename %} + {% assign filename = filename | replace: "+", "plus" %} + {% assign filename = filename | replace: ".", "-dot-" %} + {% assign filename = filename | replace: "&", "-and-" %} + {% assign filename = filename | replace: " ", "" | replace: "!", "" | replace: ":", "" | replace: "’", "" | replace: "'", "" %} + {% assign hex = icon.hex %} {% assign hex = icon.hex %} {% assign hexCharacter1 = hex | slice: 0, 1 %} @@ -136,10 +138,10 @@ {% if hslSaturation < 10 %} {% assign hslLuminance = hslLuminance | round: 0 | prepend: "000" | slice: -3, 3 %} - {% capture greyscaleIconsUnsortedString %}{{ greyscaleIconsUnsortedString }}{{ hslLuminance }},{{ filename }},{{ hslHue }},{{ hslSaturation }},{{ hex }},{{ title }},{{ class }},{{ forloop.index }}{% unless forloop.last %};{% endunless %}{% endcapture %} + {% capture greyscaleIconsUnsortedString %}{{ greyscaleIconsUnsortedString }}{{ hslLuminance }},{{ filename }},{{ hslHue }},{{ hslSaturation }},{{ hex }},{{ title }},{{ class }},{{ searchTerm }},{{ forloop.index }}{% unless forloop.last %};{% endunless %}{% endcapture %} {% else %} {% assign hslHue = hslHue | round: 0 | prepend: "000" | slice: -3, 3 %} - {% capture iconsUnsortedString %}{{ iconsUnsortedString }}{{ hslHue }},{{ hslSaturation }},{{ hslLuminance }},{{ filename }},{{ hex }},{{ title }},{{ class }},{{ forloop.index }}{% unless forloop.last %};{% endunless %}{% endcapture %} + {% capture iconsUnsortedString %}{{ iconsUnsortedString }}{{ hslHue }},{{ hslSaturation }},{{ hslLuminance }},{{ filename }},{{ hex }},{{ title }},{{ class }},{{ searchTerm }},{{ forloop.index }}{% unless forloop.last %};{% endunless %}{% endcapture %} {% endif %} {% endfor %} @@ -149,11 +151,11 @@ {% assign allIconNames = "" %} {% for icon in iconsArray %} {% assign iconArray = icon | split: "," %} - {% capture allIconNames %}{{ allIconNames }}"{{ iconArray[5] }}",{% endcapture %} + {% capture allIconNames %}{{ allIconNames }}"{{ iconArray[7] }}",{% endcapture %} {% endfor %} {% for icon in greyscaleIconsArray %} {% assign iconArray = icon | split: "," %} - {% capture allIconNames %}{{ allIconNames }}"{{ iconArray[5] }}"{% unless forloop.last %},{% endunless %}{% endcapture %} + {% capture allIconNames %}{{ allIconNames }}"{{ iconArray[7] }}"{% unless forloop.last %},{% endunless %}{% endcapture %} {% endfor %} @@ -191,12 +193,8 @@ ga('create', 'UA-100751516-2', 'auto'); ga('send', 'pageview'); - - diff --git a/package-lock.json b/package-lock.json index 75d50a10b39e..15b258bdbd82 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "simple-icons", - "version": "2.17.1", + "version": "2.18.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 46cd3cb309ce..26c78b056f6c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "simple-icons", - "version": "2.17.1", + "version": "2.18.0", "description": "SVG icons for popular brands https://simpleicons.org", "homepage": "https://www.simpleicons.org", "keywords": [ diff --git a/site_script.js b/site_script.js index 98aaff231439..757d1f00ee1b 100644 --- a/site_script.js +++ b/site_script.js @@ -65,6 +65,20 @@ return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); } + function normalizeSearchTerm(value) { + return value.toLowerCase().toLowerCase() + .replace(/à|á|â|ã|ä/g, "a") + .replace(/ç|č|ć/g, "c") + .replace(/è|é|ê|ë/g, "e") + .replace(/ì|í|î|ï/g, "i") + .replace(/ñ|ň|ń/g, "n") + .replace(/ò|ó|ô|õ|ö/g, "o") + .replace(/š|ś/g, "s") + .replace(/ù|ú|û|ü/g, "u") + .replace(/ý|ÿ/g, "y") + .replace(/ž|ź/g, "z"); + } + function search(value) { var query = normalizeSearchTerm(value) queryLetters = query.split('');