diff --git a/.svglintrc.js b/.svglintrc.js index 334cf527..e822e161 100644 --- a/.svglintrc.js +++ b/.svglintrc.js @@ -90,7 +90,7 @@ module.exports = { iconIgnored.size.hasOwnProperty(iconPath) || iconIgnored.center.hasOwnProperty(iconPath) ) { - return + return; } const targetCenter = iconSize / 2; diff --git a/_data/simple-icons.json b/_data/simple-icons.json index 68eecd27..cf97f622 100644 --- a/_data/simple-icons.json +++ b/_data/simple-icons.json @@ -1455,6 +1455,11 @@ "hex": "0066DC", "source": "http://press.dailymotion.com/?page_id=346" }, + { + "title": "Dark Reader", + "hex": "141E24", + "source": "https://github.com/simple-icons/simple-icons/pull/3348" + }, { "title": "Dart", "hex": "0175C2", @@ -3350,6 +3355,11 @@ "hex": "00558C", "source": "https://www.kofax.com/styleguide/logos" }, + { + "title": "Komoot", + "hex": "6AA127", + "source": "http://newsroom.komoot.com/media_kits/219423/" + }, { "title": "Kotlin", "hex": "0095D5", @@ -3425,6 +3435,11 @@ "hex": "F8C300", "source": "https://help.launchpad.net/logo/submissions" }, + { + "title": "LBRY", + "hex": "2F9176", + "source": "https://lbry.com/press-kit" + }, { "title": "Leaflet", "hex": "199900", @@ -4870,6 +4885,11 @@ "hex": "14161A", "source": "https://github.com/purescript/logo" }, + { + "title": "PyCharm", + "hex": "000000", + "source": "https://www.jetbrains.com/company/brand/logos/" + }, { "title": "PyPI", "hex": "3775A9", @@ -5155,6 +5175,16 @@ "hex": "525DDC", "source": "https://roots.io/about/brand/" }, + { + "title": "Roots Bedrock", + "hex": "525DDC", + "source": "https://roots.io/about/brand/" + }, + { + "title": "Roots Sage", + "hex": "525DDC", + "source": "https://roots.io/about/brand/" + }, { "title": "Roundcube", "hex": "37BEFF", @@ -5175,6 +5205,11 @@ "hex": "00A7B3", "source": "https://www.rte.ie/archives/" }, + { + "title": "RTL", + "hex": "E9113B", + "source": "https://commons.wikimedia.org/wiki/File:RTL_Cornerlogo.svg" + }, { "title": "RTLZWEI", "hex": "00BCF6", @@ -6170,6 +6205,11 @@ "hex": "53B50A", "source": "http://www.trulia.com" }, + { + "title": "Trusted Shops", + "hex": "FFDC0F", + "source": "https://brand.trustedshops.com/d/dorIFVeUmcN9/corporate-design" + }, { "title": "Trustpilot", "hex": "00B67A", diff --git a/icons/darkreader.svg b/icons/darkreader.svg new file mode 100644 index 00000000..0119da00 --- /dev/null +++ b/icons/darkreader.svg @@ -0,0 +1 @@ +Dark Reader icon diff --git a/icons/komoot.svg b/icons/komoot.svg new file mode 100644 index 00000000..315af66c --- /dev/null +++ b/icons/komoot.svg @@ -0,0 +1 @@ +Komoot icon \ No newline at end of file diff --git a/icons/lbry.svg b/icons/lbry.svg new file mode 100644 index 00000000..368a7923 --- /dev/null +++ b/icons/lbry.svg @@ -0,0 +1 @@ +LBRY icon \ No newline at end of file diff --git a/icons/pycharm.svg b/icons/pycharm.svg new file mode 100644 index 00000000..124575d6 --- /dev/null +++ b/icons/pycharm.svg @@ -0,0 +1 @@ +PyCharm icon \ No newline at end of file diff --git a/icons/rootsbedrock.svg b/icons/rootsbedrock.svg new file mode 100644 index 00000000..d3a96baa --- /dev/null +++ b/icons/rootsbedrock.svg @@ -0,0 +1 @@ +Roots Bedrock icon diff --git a/icons/rootssage.svg b/icons/rootssage.svg new file mode 100644 index 00000000..20548a30 --- /dev/null +++ b/icons/rootssage.svg @@ -0,0 +1 @@ +Roots Sage icon diff --git a/icons/rtl.svg b/icons/rtl.svg new file mode 100644 index 00000000..1abd2e27 --- /dev/null +++ b/icons/rtl.svg @@ -0,0 +1 @@ +RTL icon \ No newline at end of file diff --git a/icons/trustedshops.svg b/icons/trustedshops.svg new file mode 100644 index 00000000..b3d1e09a --- /dev/null +++ b/icons/trustedshops.svg @@ -0,0 +1 @@ +Trusted Shops icon \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 57baedad..8ee99dfa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "simple-icons", - "version": "3.3.0", + "version": "3.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1793,20 +1793,6 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "configstore": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", - "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", - "dev": true, - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", @@ -1852,12 +1838,6 @@ } } }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", - "dev": true - }, "css-select": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", @@ -2120,15 +2100,6 @@ "domelementtype": "1" } }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -2476,14 +2447,10 @@ "dev": true }, "fast-xml-parser": { - "version": "3.12.17", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.12.17.tgz", - "integrity": "sha512-gyvL0R5PGOW3gQssS/IVhANnsz1ANMK7tmE7YwqcdS7sAN8vDVKwXdQPZw5KH+nrSKSl5sXiGfhFnNflZwSgPQ==", - "dev": true, - "requires": { - "configstore": "^4.0.0", - "nimnjs": "^1.3.2" - } + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.17.4.tgz", + "integrity": "sha512-qudnQuyYBgnvzf5Lj/yxMcf4L9NcVWihXJg7CiU1L+oUCq8MUnFEfH2/nXR/W5uq+yvUN1h7z6s7vs2v1WkL1A==", + "dev": true }, "fb-watchman": { "version": "2.0.1", @@ -3011,12 +2978,6 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "dev": true - }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", @@ -4841,23 +4802,6 @@ "signal-exit": "^3.0.0" } }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, "makeerror": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", @@ -5011,20 +4955,12 @@ } }, "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } + "minimist": "^1.2.5" } }, "ms": { @@ -5064,28 +5000,6 @@ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "nimn-date-parser": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nimn-date-parser/-/nimn-date-parser-1.0.0.tgz", - "integrity": "sha512-1Nf+x3EeMvHUiHsVuEhiZnwA8RMeOBVTQWfB1S2n9+i6PYCofHd2HRMD+WOHIHYshy4T4Gk8wQoCol7Hq3av8Q==", - "dev": true - }, - "nimn_schema_builder": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/nimn_schema_builder/-/nimn_schema_builder-1.1.0.tgz", - "integrity": "sha512-DK5/B8CM4qwzG2URy130avcwPev4uO0ev836FbQyKo1ms6I9z/i6EJyiZ+d9xtgloxUri0W+5gfR8YbPq7SheA==", - "dev": true - }, - "nimnjs": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/nimnjs/-/nimnjs-1.3.2.tgz", - "integrity": "sha512-TIOtI4iqkQrUM1tiM76AtTQem0c7e56SkDZ7sj1d1MfUsqRcq2ZWQvej/O+HBTZV7u/VKnwlKTDugK/75IRPPw==", - "dev": true, - "requires": { - "nimn-date-parser": "^1.0.0", - "nimn_schema_builder": "^1.0.0" - } - }, "node-fetch": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", @@ -7308,15 +7222,6 @@ "set-value": "^2.0.1" } }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "dev": true, - "requires": { - "crypto-random-string": "^1.0.0" - } - }, "unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", @@ -7562,29 +7467,12 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "write-file-atomic": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", - "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, "ws": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz", "integrity": "sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==", "dev": true }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", - "dev": true - }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", diff --git a/package.json b/package.json index e16abe79..48dda086 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "simple-icons", - "version": "3.3.0", + "version": "3.4.0", "description": "SVG icons for popular brands https://simpleicons.org", "homepage": "https://www.simpleicons.org", "keywords": [ diff --git a/scripts/build-package.js b/scripts/build-package.js index d2cdd71f..065ba591 100644 --- a/scripts/build-package.js +++ b/scripts/build-package.js @@ -28,7 +28,7 @@ const { titleToFilename } = require("./utils"); // Local helper functions function escape(value) { - return value.replace(/'/g, "\\'"); + return value.replace(/(? ( htmlFriendlyTitle - .replace(/&/g, "&") .replace(/'/g, "’") + .replace(/&/g, "&") ) } diff --git a/site_script.js b/site_script.js index 757d1f00..45d4cb50 100644 --- a/site_script.js +++ b/site_script.js @@ -54,12 +54,12 @@ }; } - // Get any parameter from the URL's search section (location.search). - // see + // Get a parameter from the URL's search section (location.search). Based on: // - https://davidwalsh.name/query-string-javascript // - https://github.com/WebReflection/url-search-params + // - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping function getUrlParameter(parameter) { - name = parameter.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); + var name = parameter.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); var results = regex.exec(location.search); return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); @@ -84,9 +84,9 @@ queryLetters = query.split(''); var matchedIcons = icons.filter(function(iconName, iconIndex) { - var element = $icons[iconIndex], - score = iconName.length - query.length; - index = 0; + var element = $icons[iconIndex]; + var score = iconName.length - query.length; + var index = 0; for (var i = 0; i < queryLetters.length; i++) { var letter = queryLetters[i];