@@ -138,7 +138,7 @@ echo file_get_contents('path/to/package/icons/simpleicons.svg');
?>
```
-## Third Party Extensions
+## Third-Party Extensions
| Extension | Author |
| :--- | :--- |
From 8125bdb191ffe995a8ff308d2fe7629556a7e249 Mon Sep 17 00:00:00 2001
From: Mark Battistella
Date: Sat, 2 Oct 2021 09:03:14 +1000
Subject: [PATCH 133/626] Added Bio.Link (#6586)
* Added Bio.Link
* Update simple-icons.json
alphabetical order
* Update biolink.svg
* Update biolink.svg
fixed the aspect ratio
* Update biolink.svg
higher precision
---
_data/simple-icons.json | 5 +++++
icons/biolink.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/biolink.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index edbb3462ce18..818293d006e4 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -1132,6 +1132,11 @@
"hex": "F0B90B",
"source": "https://binance.com/"
},
+ {
+ "title": "Bio Link",
+ "hex": "000000",
+ "source": "https://bio.link/"
+ },
{
"title": "Bit",
"hex": "73398D",
diff --git a/icons/biolink.svg b/icons/biolink.svg
new file mode 100644
index 000000000000..cd547f446ef5
--- /dev/null
+++ b/icons/biolink.svg
@@ -0,0 +1 @@
+Bio Link
\ No newline at end of file
From 623d850924d67eed98912f5603405cae19d6931c Mon Sep 17 00:00:00 2001
From: Alexandre Paradis
Date: Fri, 1 Oct 2021 21:46:49 -0400
Subject: [PATCH 134/626] Add GoLand icon (#6630)
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 6 ++++++
icons/goland.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/goland.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 818293d006e4..672799f575ec 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -3601,6 +3601,12 @@
"hex": "86328A",
"source": "https://www.cdprojekt.com/en/media/logotypes/"
},
+ {
+ "title": "GoLand",
+ "hex": "000000",
+ "source": "https://www.jetbrains.com/company/brand/#logos-and-icons-jetbrains-logos",
+ "guidelines": "https://www.jetbrains.com/company/brand/#brand-guidelines"
+ },
{
"title": "GoldenLine",
"hex": "FFE005",
diff --git a/icons/goland.svg b/icons/goland.svg
new file mode 100644
index 000000000000..695fc9f6f25a
--- /dev/null
+++ b/icons/goland.svg
@@ -0,0 +1 @@
+GoLand
\ No newline at end of file
From b69ace92e8a027b91ea28d2baaca611d620faa4e Mon Sep 17 00:00:00 2001
From: Engin Diri
Date: Sat, 2 Oct 2021 05:11:59 +0200
Subject: [PATCH 135/626] =?UTF-8?q?Add=20Ko=C3=A7=20icon=20(#6331)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Engin Diri
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 5 +++++
icons/koc.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/koc.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 672799f575ec..15dacd9a359a 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -5018,6 +5018,11 @@
"source": "https://more.ko-fi.com/brand-assets",
"guidelines": "https://more.ko-fi.com/brand-assets"
},
+ {
+ "title": "Koc",
+ "hex": "F9423A",
+ "source": "https://www.koc.com.tr/en"
+ },
{
"title": "Kodi",
"hex": "17B2E7",
diff --git a/icons/koc.svg b/icons/koc.svg
new file mode 100644
index 000000000000..dac278af7ac3
--- /dev/null
+++ b/icons/koc.svg
@@ -0,0 +1 @@
+Koc
\ No newline at end of file
From f726999af2714f9ed69d4f60ad36aec9e089af40 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Mond=C3=A9jar?=
Date: Sat, 2 Oct 2021 16:46:07 +0200
Subject: [PATCH 136/626] Unify SVGs for HTML safe titles reporting encoding
errors in linting (#6522)
* Basic implementation
* Fix error
* Update icons
* Tweak implementation
* Minor changes
* Apply suggested changes
* Don't encode 34 and 39 codepoints (double and single quotes)
* Fix comments
---
.svglintrc.js | 163 +++++++++++++++++++++++++++++-
icons/aeromexico.svg | 2 +-
icons/allocine.svg | 2 +-
icons/citroen.svg | 2 +-
icons/dassaultsystemes.svg | 2 +-
icons/letsencrypt.svg | 2 +-
icons/macys.svg | 2 +-
icons/metrodelaciudaddemexico.svg | 2 +-
icons/metrodeparis.svg | 2 +-
icons/pokemon.svg | 2 +-
icons/rte.svg | 2 +-
icons/saopaulometro.svg | 2 +-
icons/skoda.svg | 2 +-
icons/tado.svg | 2 +-
package.json | 1 +
scripts/utils.js | 10 +-
16 files changed, 179 insertions(+), 21 deletions(-)
diff --git a/.svglintrc.js b/.svglintrc.js
index e3cca01e3a1b..45b1be49b23f 100644
--- a/.svglintrc.js
+++ b/.svglintrc.js
@@ -2,6 +2,7 @@ const fs = require('fs');
const data = require("./_data/simple-icons.json");
const { htmlFriendlyToTitle } = require("./scripts/utils.js");
+const htmlNamedEntities = require("named-html-entities-json");
const svgpath = require("svgpath");
const svgPathBbox = require("svg-path-bbox");
const parsePath = require("svg-path-segments");
@@ -69,6 +70,29 @@ function getPathDIndex(svgFileContent) {
return svgFileContent.indexOf(pathDStart) + pathDStart.length;
}
+/**
+ * Get the index at which the text of the first `` tag starts.
+ * @param svgFileContent The raw SVG as text.
+ **/
+function getTitleTextIndex(svgFileContent) {
+ const titleStart = '';
+ return svgFileContent.indexOf(titleStart) + titleStart.length;
+}
+
+/**
+ * Convert a hexadecimal number passed as string to decimal number as integer.
+ * @param hex The hexadecimal number representation to convert.
+ **/
+function hexadecimalToDecimal(hex) {
+ let result = 0, digitValue;
+ hex = hex.toLowerCase();
+ for (var i = 0; i < hex.length; i++) {
+ digitValue = '0123456789abcdefgh'.indexOf(hex[i]);
+ result = result * 16 + digitValue;
+ }
+ return result;
+}
+
if (updateIgnoreFile) {
process.on('exit', () => {
// ensure object output order is consistent due to async svglint processing
@@ -130,11 +154,140 @@ module.exports = {
function(reporter, $, ast) {
reporter.name = "icon-title";
- const iconTitleText = $.find("title").text();
- const iconName = htmlFriendlyToTitle(iconTitleText);
- const iconExists = data.icons.some(icon => icon.title === iconName);
- if (!iconExists) {
- reporter.error(`No icon with title "${iconName}" found in simple-icons.json`);
+ const iconTitleText = $.find("title").text(),
+ xmlNamedEntitiesCodepoints = [38, 60, 62],
+ xmlNamedEntities = ["amp", "lt", "gt"];
+ let _validCodepointsRepr = true;
+
+ // avoid character codepoints as hexadecimal representation
+ const hexadecimalCodepoints = Array.from(
+ iconTitleText.matchAll(/([A-Fa-f0-9]+);/g)
+ );
+ if (hexadecimalCodepoints.length > 0) {
+ _validCodepointsRepr = false;
+
+ hexadecimalCodepoints.forEach(match => {
+ const charHexReprIndex = getTitleTextIndex(ast.source) + match.index + 1;
+ const charDec = hexadecimalToDecimal(match[1]);
+
+ let charRepr;
+ if (xmlNamedEntitiesCodepoints.includes(charDec)) {
+ charRepr = `&${xmlNamedEntities[xmlNamedEntitiesCodepoints.indexOf(charDec)]};`;
+ } else if (charDec < 128) {
+ charRepr = String.fromCodePoint(charDec);
+ } else {
+ charRepr = `${charDec};`;
+ }
+
+ reporter.error(
+ `Hexadecimal representation of encoded character "${match[0]}" found at index ${charHexReprIndex}:`
+ + ` replace it with "${charRepr}".`
+ );
+ })
+ }
+
+ // avoid character codepoints as named entities
+ const namedEntitiesCodepoints = Array.from(
+ iconTitleText.matchAll(/&([A-Za-z0-9]+);/g)
+ );
+ if (namedEntitiesCodepoints.length > 0) {
+ namedEntitiesCodepoints.forEach(match => {
+ const namedEntiyReprIndex = getTitleTextIndex(ast.source) + match.index + 1;
+
+ if (!xmlNamedEntities.includes(match[1].toLowerCase())) {
+ _validCodepointsRepr = false;
+ const namedEntityJsRepr = htmlNamedEntities[match[1]];
+ let replacement;
+
+ if (namedEntityJsRepr === undefined || namedEntityJsRepr.length != 1) {
+ replacement = 'its decimal or literal representation';
+ } else {
+ const namedEntityDec = namedEntityJsRepr.codePointAt(0);
+ if (namedEntityDec < 128) {
+ replacement = `"${namedEntityJsRepr}"`;
+ } else {
+ replacement = `"${namedEntityDec};"`;
+ }
+ }
+
+ reporter.error(
+ `Named entity representation of encoded character "${match[0]}" found at index ${namedEntiyReprIndex}.`
+ + ` Replace it with ${replacement}.`
+ );
+ }
+ })
+ }
+
+ if (_validCodepointsRepr) {
+ // compare encoded title with original title and report error if not equal
+ const encodingMatches = Array.from(iconTitleText.matchAll(/&(#([0-9]+)|(amp|quot|lt|gt));/g)),
+ encodedBuf = [];
+
+ const _indexesToIgnore = [];
+ for (let m = 0; m < encodingMatches.length; m++) {
+ let index = encodingMatches[m].index;
+ for (let r = index; r < index + encodingMatches[m][0].length; r++) {
+ _indexesToIgnore.push(r)
+ }
+ }
+
+ for (let i = iconTitleText.length - 1; i >= 0; i--) {
+ if (_indexesToIgnore.includes(i)) {
+ encodedBuf.unshift(iconTitleText[i]);
+ } else {
+ // encode all non ascii characters plus "'&<> (XML named entities)
+ let charDecimalCode = iconTitleText.charCodeAt(i);
+
+ if (charDecimalCode > 127) {
+ encodedBuf.unshift(`${charDecimalCode};`);
+ } else if (xmlNamedEntitiesCodepoints.includes(charDecimalCode)) {
+ encodedBuf.unshift(
+ `&${xmlNamedEntities[xmlNamedEntitiesCodepoints.indexOf(charDecimalCode)]};`
+ );
+ } else {
+ encodedBuf.unshift(iconTitleText[i]);
+ }
+ }
+ }
+ const encodedIconTitleText = encodedBuf.join('');
+ if (encodedIconTitleText !== iconTitleText) {
+ _validCodepointsRepr = false;
+
+ reporter.error(
+ `Unencoded unicode characters found in title "${iconTitleText}":`
+ + ` rewrite it as "${encodedIconTitleText}".`
+ );
+ }
+
+ // check if there are some other encoded characters in decimal notation
+ // which shouldn't be encoded
+ encodingMatches.filter(m => !isNaN(m[2])).forEach(match => {
+ const decimalNumber = parseInt(match[2]);
+ if (decimalNumber < 128) {
+ _validCodepointsRepr = false;
+
+ const decimalCodepointCharIndex = getTitleTextIndex(ast.source) + match.index + 1;
+ if (xmlNamedEntitiesCodepoints.includes(decimalNumber)) {
+ replacement = `"&${xmlNamedEntities[xmlNamedEntitiesCodepoints.indexOf(decimalNumber)]};"`;
+ } else {
+ replacement = String.fromCharCode(decimalNumber);
+ replacement = replacement == '"' ? `'"'` : `"${replacement}"`;
+ }
+
+ reporter.error(
+ `Unnecessary encoded character "${match[0]}" found at index ${decimalCodepointCharIndex}:`
+ + ` replace it with ${replacement}.`
+ );
+ }
+ });
+
+ if (_validCodepointsRepr) {
+ const iconName = htmlFriendlyToTitle(iconTitleText);
+ const iconExists = data.icons.some(icon => icon.title === iconName);
+ if (!iconExists) {
+ reporter.error(`No icon with title "${iconName}" found in simple-icons.json`);
+ }
+ }
}
},
function(reporter, $, ast) {
diff --git a/icons/aeromexico.svg b/icons/aeromexico.svg
index f7d77e3e0925..a27f719963bf 100644
--- a/icons/aeromexico.svg
+++ b/icons/aeromexico.svg
@@ -1 +1 @@
-Aeroméxico
\ No newline at end of file
+Aeroméxico
\ No newline at end of file
diff --git a/icons/allocine.svg b/icons/allocine.svg
index 4a53441c5324..f55e4355095c 100644
--- a/icons/allocine.svg
+++ b/icons/allocine.svg
@@ -1 +1 @@
-AlloCiné
\ No newline at end of file
+AlloCiné
\ No newline at end of file
diff --git a/icons/citroen.svg b/icons/citroen.svg
index 9794fcc56013..128db1771e56 100644
--- a/icons/citroen.svg
+++ b/icons/citroen.svg
@@ -1 +1 @@
-Citroën
\ No newline at end of file
+Citroën
\ No newline at end of file
diff --git a/icons/dassaultsystemes.svg b/icons/dassaultsystemes.svg
index 0a6e8cbba53c..14f4f654fc56 100644
--- a/icons/dassaultsystemes.svg
+++ b/icons/dassaultsystemes.svg
@@ -1 +1 @@
-Dassault Systèmes
\ No newline at end of file
+Dassault Systèmes
\ No newline at end of file
diff --git a/icons/letsencrypt.svg b/icons/letsencrypt.svg
index c64bb501993d..78989811942c 100644
--- a/icons/letsencrypt.svg
+++ b/icons/letsencrypt.svg
@@ -1 +1 @@
-Let's Encrypt
\ No newline at end of file
+Let’s Encrypt
\ No newline at end of file
diff --git a/icons/macys.svg b/icons/macys.svg
index 6f1e3215313f..d336959bdae4 100644
--- a/icons/macys.svg
+++ b/icons/macys.svg
@@ -1 +1 @@
-Macy’s
\ No newline at end of file
+Macy’s
\ No newline at end of file
diff --git a/icons/metrodelaciudaddemexico.svg b/icons/metrodelaciudaddemexico.svg
index 21b0fefda382..f1af123fdd18 100644
--- a/icons/metrodelaciudaddemexico.svg
+++ b/icons/metrodelaciudaddemexico.svg
@@ -1 +1 @@
-Metro de la Ciudad de México
\ No newline at end of file
+Metro de la Ciudad de México
\ No newline at end of file
diff --git a/icons/metrodeparis.svg b/icons/metrodeparis.svg
index 0b4e39cd92f4..09081bb47afa 100644
--- a/icons/metrodeparis.svg
+++ b/icons/metrodeparis.svg
@@ -1 +1 @@
-Métro de Paris
\ No newline at end of file
+Métro de Paris
\ No newline at end of file
diff --git a/icons/pokemon.svg b/icons/pokemon.svg
index c2849175f6d6..d19a290c7924 100644
--- a/icons/pokemon.svg
+++ b/icons/pokemon.svg
@@ -1 +1 @@
-Pokémon
\ No newline at end of file
+Pokémon
\ No newline at end of file
diff --git a/icons/rte.svg b/icons/rte.svg
index 1eb1922e55cc..9180bfbbce0d 100644
--- a/icons/rte.svg
+++ b/icons/rte.svg
@@ -1 +1 @@
-RTÉ
\ No newline at end of file
+RTÉ
\ No newline at end of file
diff --git a/icons/saopaulometro.svg b/icons/saopaulometro.svg
index cea0c4659769..12d154cdbf01 100644
--- a/icons/saopaulometro.svg
+++ b/icons/saopaulometro.svg
@@ -1 +1 @@
-São Paulo Metro
\ No newline at end of file
+São Paulo Metro
\ No newline at end of file
diff --git a/icons/skoda.svg b/icons/skoda.svg
index ccbf36e601ff..6b36aa18ce5b 100644
--- a/icons/skoda.svg
+++ b/icons/skoda.svg
@@ -1 +1 @@
-ŠKODA
\ No newline at end of file
+ŠKODA
\ No newline at end of file
diff --git a/icons/tado.svg b/icons/tado.svg
index f71561cf7ca9..90577e94edf0 100644
--- a/icons/tado.svg
+++ b/icons/tado.svg
@@ -1 +1 @@
-tado°
\ No newline at end of file
+tado°
\ No newline at end of file
diff --git a/package.json b/package.json
index 2cb12a4ff9e4..915a96f3d169 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
"jest": "27.2.2",
"jest-diff": "27.2.2",
"jsonschema": "1.4.0",
+ "named-html-entities-json": "0.1.0",
"npm-run-all": "4.1.5",
"rimraf": "3.0.2",
"svg-path-bbox": "1.0.1",
diff --git a/scripts/utils.js b/scripts/utils.js
index b7eb0da32d72..6e918cefdede 100644
--- a/scripts/utils.js
+++ b/scripts/utils.js
@@ -37,8 +37,12 @@ module.exports = {
* @param {String} htmlFriendlyTitle The title to convert
*/
htmlFriendlyToTitle: htmlFriendlyTitle => (
- htmlFriendlyTitle
- .replace(/'/g, "’")
- .replace(/&/g, "&")
+ htmlFriendlyTitle.replace(
+ /([0-9]+);/g,
+ (_, num) => String.fromCharCode(parseInt(num))
+ ).replace(
+ /&(quot|amp|lt|gt);/g,
+ (_, ref) => ({quot: '"', amp: '&', lt: '<', gt: '>'}[ref])
+ )
),
}
From 8eb69b42acbc7f7eabb5e47dfcfac8251d3f3b5b Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Sun, 3 Oct 2021 00:13:29 +0000
Subject: [PATCH 137/626] version bump
---
package.json | 2 +-
slugs.md | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 915a96f3d169..b698e6ab48ba 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "simple-icons",
- "version": "5.16.0",
+ "version": "5.17.0",
"description": "SVG icons for popular brands https://simpleicons.org",
"homepage": "https://simpleicons.org",
"keywords": [
diff --git a/slugs.md b/slugs.md
index e0cb35413c1e..c1c2c777ab3d 100644
--- a/slugs.md
+++ b/slugs.md
@@ -231,6 +231,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `BigCommerce` | `bigcommerce` |
| `Bilibili` | `bilibili` |
| `Binance` | `binance` |
+| `Bio Link` | `biolink` |
| `Bit` | `bit` |
| `Bitbucket` | `bitbucket` |
| `Bitcoin` | `bitcoin` |
@@ -697,6 +698,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Godot Engine` | `godotengine` |
| `GoFundMe` | `gofundme` |
| `GOG.com` | `gogdotcom` |
+| `GoLand` | `goland` |
| `GoldenLine` | `goldenline` |
| `Goodreads` | `goodreads` |
| `Google` | `google` |
@@ -957,6 +959,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `KnowledgeBase` | `knowledgebase` |
| `Known` | `known` |
| `Ko-fi` | `kofi` |
+| `Koc` | `koc` |
| `Kodi` | `kodi` |
| `Koding` | `koding` |
| `Kofax` | `kofax` |
@@ -1757,6 +1760,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `The Mighty` | `themighty` |
| `The Models Resource` | `themodelsresource` |
| `The Movie Database` | `themoviedatabase` |
+| `The North Face` | `thenorthface` |
| `The Register` | `theregister` |
| `The Sounds Resource` | `thesoundsresource` |
| `The Spriters Resource` | `thespritersresource` |
From a88c59895b7a2013037053f0df8e4d0d28a8fdcd Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Sun, 3 Oct 2021 00:27:19 +0000
Subject: [PATCH 138/626] version bump
---
package.json | 2 +-
slugs.md | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 2cb12a4ff9e4..3b68590e0184 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "simple-icons",
- "version": "5.16.0",
+ "version": "5.1.0",
"description": "SVG icons for popular brands https://simpleicons.org",
"homepage": "https://simpleicons.org",
"keywords": [
diff --git a/slugs.md b/slugs.md
index e0cb35413c1e..60f68ccdab7e 100644
--- a/slugs.md
+++ b/slugs.md
@@ -1757,6 +1757,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `The Mighty` | `themighty` |
| `The Models Resource` | `themodelsresource` |
| `The Movie Database` | `themoviedatabase` |
+| `The North Face` | `thenorthface` |
| `The Register` | `theregister` |
| `The Sounds Resource` | `thesoundsresource` |
| `The Spriters Resource` | `thespritersresource` |
From a53cd65768765f26d0b0652c71c69584382106bc Mon Sep 17 00:00:00 2001
From: Engin Diri
Date: Sun, 3 Oct 2021 03:59:12 +0200
Subject: [PATCH 139/626] Add Aldi Nord icon (#6382)
* Add Aldi Nord icon
Signed-off-by: Engin Diri
* changed the source for Aldi Nord
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 5 +++++
icons/aldinord.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/aldinord.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 15dacd9a359a..af9bfd95dab5 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -335,6 +335,11 @@
"hex": "F46D01",
"source": "https://github.com/alacritty/alacritty/blob/6d8db6b9dfadd6164c4be7a053f25db8ef6b7998/extra/logo/alacritty-simple.svg"
},
+ {
+ "title": "Aldi Nord",
+ "hex": "2490D7",
+ "source": "https://commons.wikimedia.org/wiki/File:Aldi_Nord_201x_logo.svg"
+ },
{
"title": "Alfa Romeo",
"hex": "981E32",
diff --git a/icons/aldinord.svg b/icons/aldinord.svg
new file mode 100644
index 000000000000..975a24dc9937
--- /dev/null
+++ b/icons/aldinord.svg
@@ -0,0 +1 @@
+Aldi Nord
\ No newline at end of file
From d7fc74909e9af68c87af8a98c97184bf8e024add Mon Sep 17 00:00:00 2001
From: Kristoffer Forsgren
Date: Mon, 4 Oct 2021 03:44:49 +0200
Subject: [PATCH 140/626] Add Peak Design (#6504)
* Adding Peak Design
* Updated source based on PR feedback
---
_data/simple-icons.json | 5 +++++
icons/peakdesign.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/peakdesign.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index af9bfd95dab5..4f963e679a99 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -6828,6 +6828,11 @@
"hex": "556DB3",
"source": "https://www.pcgamingwiki.com/wiki/Home"
},
+ {
+ "title": "Peak Design",
+ "hex": "1C1B1C",
+ "source": "https://www.peakdesign.com/"
+ },
{
"title": "PeerTube",
"hex": "F1680D",
diff --git a/icons/peakdesign.svg b/icons/peakdesign.svg
new file mode 100644
index 000000000000..f1250cb9dfc2
--- /dev/null
+++ b/icons/peakdesign.svg
@@ -0,0 +1 @@
+Peak Design
\ No newline at end of file
From 3b791ccea9a8fdd8830459aa844e980f4ede0599 Mon Sep 17 00:00:00 2001
From: Abhinav Minhas
Date: Tue, 5 Oct 2021 01:49:03 +1100
Subject: [PATCH 141/626] TestCafe icon (#6650)
* TestCafe icon addition
* TestCafe icon hex update
* TestCafe icon viewBox update
* TestCafe icon viewBox update
* TestCafe icon update
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 5 +++++
icons/testcafe.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/testcafe.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 4f963e679a99..274de697fc9c 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -9338,6 +9338,11 @@
"hex": "CC0000",
"source": "https://www.tesla.com/tesla-gallery"
},
+ {
+ "title": "TestCafe",
+ "hex": "36B6E5",
+ "source": "https://github.com/DevExpress/testcafe/blob/dd174b6682b5f2675ac90e305d3d893c36a1d814/media/logos/svg/TestCafe-logo-600.svg"
+ },
{
"title": "Testin",
"hex": "007DD7",
diff --git a/icons/testcafe.svg b/icons/testcafe.svg
new file mode 100644
index 000000000000..2a8a320b848f
--- /dev/null
+++ b/icons/testcafe.svg
@@ -0,0 +1 @@
+TestCafe
\ No newline at end of file
From ba17942c0122115e5158f38c56fae13b26e4a29b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Alo=C3=AFs=20de=20Gouvello?=
Date: Tue, 5 Oct 2021 16:41:37 +0200
Subject: [PATCH 142/626] Add Welcome to the Jungle (#6624)
* Add Welcome to the Jungle
* Add Welcome to the Jungle to _data
* Add WTTJ alias
* Center icon
---
_data/simple-icons.json | 10 ++++++++++
icons/welcometothejungle.svg | 1 +
2 files changed, 11 insertions(+)
create mode 100644 icons/welcometothejungle.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 274de697fc9c..1fe229797f75 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -10285,6 +10285,16 @@
"hex": "FFBE00",
"source": "https://wandb.ai/"
},
+ {
+ "title": "Welcome to the Jungle",
+ "aliases": {
+ "aka": [
+ "WTTJ"
+ ]
+ },
+ "hex": "FFCD00",
+ "source": "https://www.welcometothejungle.com/"
+ },
{
"title": "WEMO",
"hex": "72D44C",
diff --git a/icons/welcometothejungle.svg b/icons/welcometothejungle.svg
new file mode 100644
index 000000000000..3f0ad61258fa
--- /dev/null
+++ b/icons/welcometothejungle.svg
@@ -0,0 +1 @@
+Welcome to the Jungle
\ No newline at end of file
From d19b03faa488f000b7a458309a7580a6bc348c14 Mon Sep 17 00:00:00 2001
From: Ahmed AbouZaid <6760103+aabouzaid@users.noreply.github.com>
Date: Wed, 6 Oct 2021 14:35:17 +0200
Subject: [PATCH 143/626] Add Artifact Hub (#6173)
---
_data/simple-icons.json | 5 +++++
icons/artifacthub.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/artifacthub.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 1fe229797f75..f306013db62b 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -798,6 +798,11 @@
"hex": "49B48A",
"source": "https://www.arlo.com/"
},
+ {
+ "title": "Artifact Hub",
+ "hex": "417598",
+ "source": "https://raw.githubusercontent.com/artifacthub/hub/87a1fed/web/public/static/media/logo/artifacthub-brand-white.svg"
+ },
{
"title": "Artix Linux",
"hex": "10A0CC",
diff --git a/icons/artifacthub.svg b/icons/artifacthub.svg
new file mode 100644
index 000000000000..12649c235300
--- /dev/null
+++ b/icons/artifacthub.svg
@@ -0,0 +1 @@
+Artifact Hub
From fb32cb7e33f8bd1507638f20505de9466ef90250 Mon Sep 17 00:00:00 2001
From: Kristoffer Forsgren
Date: Wed, 6 Oct 2021 15:12:42 +0200
Subject: [PATCH 144/626] Adding Redmine icon (#6326)
* Adding Redmine icon
* changing source for Redmine icon
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 9 +++++++++
icons/redmine.svg | 1 +
2 files changed, 10 insertions(+)
create mode 100644 icons/redmine.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index f306013db62b..a75823abb0fb 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -7791,6 +7791,15 @@
"source": "https://www.redislabs.com/brand-guidelines/",
"guidelines": "https://www.redislabs.com/brand-guidelines/"
},
+ {
+ "title": "Redmine",
+ "hex": "B32024",
+ "source": "https://www.redmine.org/projects/redmine/wiki/logo",
+ "license": {
+ "type": "CC-BY-SA-2.5",
+ "url": "https://github.com/edavis10/redmine_logo/blob/2afe855c4e9cd955b648972d09cc20d76dabbf4c/COPYRIGHT"
+ }
+ },
{
"title": "Redux",
"hex": "764ABC",
diff --git a/icons/redmine.svg b/icons/redmine.svg
new file mode 100644
index 000000000000..644894fa6181
--- /dev/null
+++ b/icons/redmine.svg
@@ -0,0 +1 @@
+Redmine
\ No newline at end of file
From 039f4f4a205244aa43cd827012a016690912a61f Mon Sep 17 00:00:00 2001
From: Eric Cornelissen
Date: Thu, 7 Oct 2021 10:41:38 +0200
Subject: [PATCH 145/626] Improve release workflow (#6646)
* Use PAT to avoid version bump commit problems due to branch protections
Following the instructions of stefanzweifel/git-auto-commit-action [1]
for pushing to branches with branch protections, this changes the create
release workflow to fetch the repo with a PAT (that must belong to an
admin for this to work). As a result, when pushing the version bump
commit, the required status checks are not required (provided the rules
are not applied to admins).
---
1. https://github.com/stefanzweifel/git-auto-commit-action#push-to-protected-branches
* Add warning to not add `on: push` to create release workflow
* Enforce that create-release isn'ttriggered by push events
---
.github/workflows/create-release.yml | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml
index e38a2a59b42a..ca08509ef8ec 100644
--- a/.github/workflows/create-release.yml
+++ b/.github/workflows/create-release.yml
@@ -1,5 +1,7 @@
name: Create Release Pull Request
on:
+ # THIS WORKFLOW SHOULD NEVER BE TRIGGERED ON A PUSH EVENT. IF TRIGGERED ON A
+ # PUSH EVENT IT MAY CREATE AN ENDLESS STREAM OF 'version bump' COMMITS.
workflow_dispatch:
schedule:
# "At 00:00 on Sunday" (https://crontab.guru/once-a-week)
@@ -16,6 +18,7 @@ on:
jobs:
release-pr:
runs-on: ubuntu-latest
+ if: github.event_name != 'push'
outputs:
did-create-pr: ${{ steps.release.outputs.did-create-pr }}
new-version: ${{ steps.release.outputs.new-version }}
@@ -27,11 +30,15 @@ jobs:
version-bump:
runs-on: ubuntu-latest
needs: release-pr
- if: needs.release-pr.outputs.did-create-pr == 'true'
+ if: |
+ github.event_name != 'push' &&
+ needs.release-pr.outputs.did-create-pr == 'true'
steps:
- name: Checkout
uses: actions/checkout@v2
with:
+ # Ensure the commit can be pushed regardless of branch protections (must belong to an admin of this repo)
+ token: ${{ secrets.RELEASE_TOKEN }}
# Ensure we are checked out on the develop branch
ref: develop
- name: Bump version
From ff113139d4c2381d2d66c9ffb94bb461dd536924 Mon Sep 17 00:00:00 2001
From: Alexandre Paradis
Date: Thu, 7 Oct 2021 10:39:54 -0400
Subject: [PATCH 146/626] Add Rome icon (#5973)
---
_data/simple-icons.json | 9 +++++++++
icons/rome.svg | 1 +
2 files changed, 10 insertions(+)
create mode 100644 icons/rome.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index a75823abb0fb..adf43733f293 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -7978,6 +7978,15 @@
"hex": "EC4A3F",
"source": "https://rollupjs.org/"
},
+ {
+ "title": "Rome",
+ "hex": "27272A",
+ "source": "https://github.com/rome/tools/blob/261c3f3bdc21439777f78b6551f707cce0c8d04a/assets/SVG/logomark_black.svg",
+ "guidelines": "https://github.com/rome/tools/tree/main/assets",
+ "license": {
+ "type": "CC-BY-NC-SA-4.0"
+ }
+ },
{
"title": "Roots",
"hex": "525DDC",
diff --git a/icons/rome.svg b/icons/rome.svg
new file mode 100644
index 000000000000..9ee7539741a5
--- /dev/null
+++ b/icons/rome.svg
@@ -0,0 +1 @@
+Rome
\ No newline at end of file
From 342191e037cc50bb8fd2ea6c219d906d97c3508b Mon Sep 17 00:00:00 2001
From: Peter Noble <15157491+PeterShaggyNoble@users.noreply.github.com>
Date: Thu, 7 Oct 2021 16:08:47 +0100
Subject: [PATCH 147/626] Add Aston Martin (#5502)
* Add Aston Martin
* Remove "icon" from SVG title
---
_data/simple-icons.json | 5 +++++
icons/astonmartin.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/astonmartin.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index adf43733f293..b865dec2c1e3 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -854,6 +854,11 @@
"hex": "007AAC",
"source": "https://www.assemblyscript.org/"
},
+ {
+ "title": "Aston Martin",
+ "hex": "000000",
+ "source": "https://www.astonmartin.com/"
+ },
{
"title": "ASUS",
"hex": "000000",
diff --git a/icons/astonmartin.svg b/icons/astonmartin.svg
new file mode 100644
index 000000000000..5af9e60c6633
--- /dev/null
+++ b/icons/astonmartin.svg
@@ -0,0 +1 @@
+Aston Martin
\ No newline at end of file
From 7fa2561d414a8d9c9aea7f7b2c2b2e952e7775e2 Mon Sep 17 00:00:00 2001
From: Peter Noble <15157491+PeterShaggyNoble@users.noreply.github.com>
Date: Thu, 7 Oct 2021 16:18:46 +0100
Subject: [PATCH 148/626] Add Livewire (#5608)
* Add Livewire
* Remove "icon" from SVG title
---
_data/simple-icons.json | 5 +++++
icons/livewire.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/livewire.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index b865dec2c1e3..5ce8c65f17e0 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -5350,6 +5350,11 @@
"hex": "00B0EA",
"source": "http://www.livejournal.com"
},
+ {
+ "title": "Livewire",
+ "hex": "4E56A6",
+ "source": "https://laravel-livewire.com/"
+ },
{
"title": "LLVM",
"hex": "262D3A",
diff --git a/icons/livewire.svg b/icons/livewire.svg
new file mode 100644
index 000000000000..0bfea59f07ed
--- /dev/null
+++ b/icons/livewire.svg
@@ -0,0 +1 @@
+Livewire
\ No newline at end of file
From 3fa77c540d4dd2e8f047d103b85b3d4d54be9709 Mon Sep 17 00:00:00 2001
From: Jorge Amado Soria Ramirez
Date: Thu, 7 Oct 2021 12:35:50 -0500
Subject: [PATCH 149/626] adding GitHub Pages logo (#6209)
Co-authored-by: jsoria
---
_data/simple-icons.json | 5 +++++
icons/githubpages.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/githubpages.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 5ce8c65f17e0..7c97809aae8f 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -3486,6 +3486,11 @@
"hex": "2088FF",
"source": "https://github.com/features/actions"
},
+ {
+ "title": "GitHub Pages",
+ "hex": "222222",
+ "source": "https://pages.github.com/"
+ },
{
"title": "GitHub Sponsors",
"hex": "EA4AAA",
diff --git a/icons/githubpages.svg b/icons/githubpages.svg
new file mode 100644
index 000000000000..bd3d5167bb44
--- /dev/null
+++ b/icons/githubpages.svg
@@ -0,0 +1 @@
+GitHub Pages
\ No newline at end of file
From 47be2ddeb93f3fd690753c4394250213807a3a35 Mon Sep 17 00:00:00 2001
From: Peter Noble <15157491+PeterShaggyNoble@users.noreply.github.com>
Date: Thu, 7 Oct 2021 19:08:49 +0100
Subject: [PATCH 150/626] Add NOW (#6289)
---
_data/simple-icons.json | 5 +++++
icons/now.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/now.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 7c97809aae8f..892ad991d7bf 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -6359,6 +6359,11 @@
"hex": "000000",
"source": "https://www.lingoapp.com/6/s/oJkq3W/?v=3"
},
+ {
+ "title": "NOW",
+ "hex": "001211",
+ "source": "https://www.nowtv.com/"
+ },
{
"title": "npm",
"hex": "CB3837",
diff --git a/icons/now.svg b/icons/now.svg
new file mode 100644
index 000000000000..685553d3f53f
--- /dev/null
+++ b/icons/now.svg
@@ -0,0 +1 @@
+NOW
\ No newline at end of file
From 467d6963c2bb2b8d73dd4489fedfa0e5f6386e2e Mon Sep 17 00:00:00 2001
From: Alexandre Paradis
Date: Thu, 7 Oct 2021 14:21:25 -0400
Subject: [PATCH 151/626] Add NZXT icon (#5899)
---
_data/simple-icons.json | 6 ++++++
icons/nzxt.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/nzxt.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 892ad991d7bf..96ac422dd558 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -6427,6 +6427,12 @@
"hex": "143055",
"source": "https://nx.dev/"
},
+ {
+ "title": "NZXT",
+ "hex": "000000",
+ "source": "https://nzxt.com/",
+ "guidelines": "https://nzxt.com/about/brand-guidelines"
+ },
{
"title": "OBS Studio",
"hex": "302E31",
diff --git a/icons/nzxt.svg b/icons/nzxt.svg
new file mode 100644
index 000000000000..69c2e6fc785b
--- /dev/null
+++ b/icons/nzxt.svg
@@ -0,0 +1 @@
+NZXT
\ No newline at end of file
From 35eec146fd8c4fb489d637697904495f64e46b0c Mon Sep 17 00:00:00 2001
From: Alexandre Paradis
Date: Thu, 7 Oct 2021 14:26:24 -0400
Subject: [PATCH 152/626] Add Snowpack icon (#5978)
---
_data/simple-icons.json | 5 +++++
icons/snowpack.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/snowpack.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 96ac422dd558..9fab3251f367 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -8622,6 +8622,11 @@
"source": "https://www.snowflake.com/brand-guidelines/",
"guidelines": "https://www.snowflake.com/brand-guidelines/"
},
+ {
+ "title": "Snowpack",
+ "hex": "2E5E82",
+ "source": "https://www.snowpack.dev/"
+ },
{
"title": "Snyk",
"hex": "4C4A73",
diff --git a/icons/snowpack.svg b/icons/snowpack.svg
new file mode 100644
index 000000000000..516b91665e00
--- /dev/null
+++ b/icons/snowpack.svg
@@ -0,0 +1 @@
+Snowpack
\ No newline at end of file
From 8281a22908de8fc1a44f90855b36393d3b9cb1ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Zapotoczny?=
<81389751+Zapotoczny-Rafal@users.noreply.github.com>
Date: Thu, 7 Oct 2021 20:41:52 +0200
Subject: [PATCH 153/626] Add Appwrite icon (#6478)
* force website build
* Add files via upload
* Add Appwrite
* Add new line bottom
* Update simple-icons.json
* Update simple-icons.json
---
_data/simple-icons.json | 5 +++++
icons/appwrite.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/appwrite.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 9fab3251f367..8fd2ba23670c 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -751,6 +751,11 @@
"hex": "00B3E0",
"source": "https://commons.wikimedia.org/wiki/File:Appveyor_logo.svg"
},
+ {
+ "title": "Appwrite",
+ "hex": "F02E65",
+ "source": "https://github.com/appwrite/appwrite/blob/c961382fb7a59ce908b4982a572e02e6e0feacd5/public/images/appwrite.svg"
+ },
{
"title": "ARAL",
"hex": "0063CB",
diff --git a/icons/appwrite.svg b/icons/appwrite.svg
new file mode 100644
index 000000000000..350d784f8a40
--- /dev/null
+++ b/icons/appwrite.svg
@@ -0,0 +1 @@
+Appwrite
From 72d06f75c649dacb3dafca6299fd4bccb4c0d123 Mon Sep 17 00:00:00 2001
From: Alexandre Paradis
Date: Thu, 7 Oct 2021 14:51:17 -0400
Subject: [PATCH 154/626] Add Framework7 icon (#5851)
---
_data/simple-icons.json | 5 +++++
icons/framework7.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/framework7.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 8fd2ba23670c..fa1260b00fbd 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -3282,6 +3282,11 @@
"hex": "0055FF",
"source": "https://framer.com"
},
+ {
+ "title": "Framework7",
+ "hex": "EE350F",
+ "source": "https://github.com/framework7io/framework7-website/blob/2a1e32290c795c2070ffc7019ba7276614e00de0/public/i/logo.svg"
+ },
{
"title": "Franprix",
"hex": "EC6237",
diff --git a/icons/framework7.svg b/icons/framework7.svg
new file mode 100644
index 000000000000..60dd7bf0f6f8
--- /dev/null
+++ b/icons/framework7.svg
@@ -0,0 +1 @@
+Framework7
\ No newline at end of file
From 0c7dbe934dd4246a356199a8817f0b872a971057 Mon Sep 17 00:00:00 2001
From: Alexandre Paradis
Date: Thu, 7 Oct 2021 14:57:01 -0400
Subject: [PATCH 155/626] Add Coil Icon (#5870)
---
_data/simple-icons.json | 6 ++++++
icons/coil.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/coil.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index fa1260b00fbd..6f925155dc46 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -1925,6 +1925,12 @@
"hex": "1A4CA1",
"source": "https://www.cognizant.com/"
},
+ {
+ "title": "Coil",
+ "hex": "000000",
+ "source": "https://coil.com/press/brand-guidelines",
+ "guidelines": "https://coil.com/press/brand-guidelines"
+ },
{
"title": "Coinbase",
"hex": "0052FF",
diff --git a/icons/coil.svg b/icons/coil.svg
new file mode 100644
index 000000000000..fcaafc6a403d
--- /dev/null
+++ b/icons/coil.svg
@@ -0,0 +1 @@
+Coil
\ No newline at end of file
From c227e3d609b47167f3439106dc05f8188f2cff1c Mon Sep 17 00:00:00 2001
From: Alexandre Paradis
Date: Thu, 7 Oct 2021 15:02:09 -0400
Subject: [PATCH 156/626] Add Koa icon (#5905)
* Add Koa icon
* add missing quote
---
_data/simple-icons.json | 5 +++++
icons/koa.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/koa.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 6f925155dc46..07f17b7d8e13 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -5054,6 +5054,11 @@
"source": "https://more.ko-fi.com/brand-assets",
"guidelines": "https://more.ko-fi.com/brand-assets"
},
+ {
+ "title": "Koa",
+ "hex": "33333D",
+ "source": "https://koajs.com/"
+ },
{
"title": "Koc",
"hex": "F9423A",
diff --git a/icons/koa.svg b/icons/koa.svg
new file mode 100644
index 000000000000..792af0980130
--- /dev/null
+++ b/icons/koa.svg
@@ -0,0 +1 @@
+Koa
\ No newline at end of file
From 661afdea9a56451b2fa2b6b5fc6b6f94e3a2ce9c Mon Sep 17 00:00:00 2001
From: Alexandre Paradis
Date: Thu, 7 Oct 2021 15:29:04 -0400
Subject: [PATCH 157/626] Add Rocky Linux icon (#5881)
---
_data/simple-icons.json | 8 ++++++++
icons/rockylinux.svg | 1 +
2 files changed, 9 insertions(+)
create mode 100644 icons/rockylinux.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 07f17b7d8e13..57d5d315ce65 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -8009,6 +8009,14 @@
"source": "https://rocket.chat/press",
"guidelines": "https://docs.rocket.chat/guides/brand-and-visual-guidelines/logo"
},
+ {
+ "title": "Rocky Linux",
+ "hex": "10B981",
+ "source": "https://github.com/rocky-linux/branding/blob/94e97dd30b87d909cc4f6a6838a2926f77f9ac47/logo/src/icon-black.svg",
+ "license": {
+ "type": "CC-BY-SA-4.0"
+ }
+ },
{
"title": "Roku",
"hex": "662D91",
diff --git a/icons/rockylinux.svg b/icons/rockylinux.svg
new file mode 100644
index 000000000000..af412a5321af
--- /dev/null
+++ b/icons/rockylinux.svg
@@ -0,0 +1 @@
+Rocky Linux
\ No newline at end of file
From 35d6606719d5791d6d5eb836054e542c7a2ba3f8 Mon Sep 17 00:00:00 2001
From: Alexandre Paradis
Date: Thu, 7 Oct 2021 16:10:21 -0400
Subject: [PATCH 158/626] Add Avast icon (#5850)
* Add Avast icon
* Add Avast Guidelines
* Update Avast icon
---
_data/simple-icons.json | 6 ++++++
icons/avast.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/avast.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 57d5d315ce65..db9fb4cb986d 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -954,6 +954,12 @@
"hex": "DD3735",
"source": "https://github.com/postcss/autoprefixer/blob/1341747bc8142a147342f55eea5ed4286a3ca318/logo.svg"
},
+ {
+ "title": "Avast",
+ "hex": "FF7800",
+ "source": "https://www.avast.com/",
+ "guidelines": "https://press.avast.com/media-materials"
+ },
{
"title": "Awesome Lists",
"hex": "FC60A8",
diff --git a/icons/avast.svg b/icons/avast.svg
new file mode 100644
index 000000000000..c4fed15f1e2c
--- /dev/null
+++ b/icons/avast.svg
@@ -0,0 +1 @@
+Avast
\ No newline at end of file
From cb04a179d07839b6812d133b13552ed0a0e02508 Mon Sep 17 00:00:00 2001
From: Alexandre Paradis
Date: Thu, 7 Oct 2021 16:18:03 -0400
Subject: [PATCH 159/626] Add DataGrip icon (#5858)
* Add DataGrip icon
* Update DataGrip path
---
_data/simple-icons.json | 6 ++++++
icons/datagrip.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/datagrip.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index db9fb4cb986d..446bc962234a 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -2235,6 +2235,12 @@
"source": "https://www.datadoghq.com/about/resources",
"guidelines": "https://www.datadoghq.com/about/resources/"
},
+ {
+ "title": "DataGrip",
+ "hex": "000000",
+ "source": "https://www.jetbrains.com/company/brand/logos/",
+ "guidelines": "https://www.jetbrains.com/company/brand/"
+ },
{
"title": "Dataiku",
"hex": "2AB1AC",
diff --git a/icons/datagrip.svg b/icons/datagrip.svg
new file mode 100644
index 000000000000..faed127cb235
--- /dev/null
+++ b/icons/datagrip.svg
@@ -0,0 +1 @@
+DataGrip
\ No newline at end of file
From 96d4f095048c609489974ebe9129db4041951a68 Mon Sep 17 00:00:00 2001
From: Engin Diri
Date: Fri, 8 Oct 2021 09:15:44 +0200
Subject: [PATCH 160/626] Add Penny icon (#6378)
Signed-off-by: Engin Diri
---
_data/simple-icons.json | 5 +++++
icons/penny.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/penny.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 446bc962234a..3a7a66469247 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -6920,6 +6920,11 @@
"hex": "181A1D",
"source": "https://press.onepeloton.com/#logos"
},
+ {
+ "title": "Penny",
+ "hex": "CD1414",
+ "source": "https://www.penny.de/"
+ },
{
"title": "Pepsi",
"hex": "2151A1",
diff --git a/icons/penny.svg b/icons/penny.svg
new file mode 100644
index 000000000000..19c2e35c6038
--- /dev/null
+++ b/icons/penny.svg
@@ -0,0 +1 @@
+Penny
\ No newline at end of file
From 3998e0ed0dcd6baea5910ee47a41652e49901da5 Mon Sep 17 00:00:00 2001
From: Engin Diri
Date: Fri, 8 Oct 2021 13:40:48 +0200
Subject: [PATCH 161/626] =?UTF-8?q?Add=20Aldi=20S=C3=BCd=20icon=20(#6380)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Engin Diri
---
_data/simple-icons.json | 5 +++++
icons/aldisud.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/aldisud.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 3a7a66469247..49aab2708661 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -340,6 +340,11 @@
"hex": "2490D7",
"source": "https://commons.wikimedia.org/wiki/File:Aldi_Nord_201x_logo.svg"
},
+ {
+ "title": "Aldi Süd",
+ "hex": "00005F",
+ "source": "https://www.aldi-sued.de"
+ },
{
"title": "Alfa Romeo",
"hex": "981E32",
diff --git a/icons/aldisud.svg b/icons/aldisud.svg
new file mode 100644
index 000000000000..c42685112b64
--- /dev/null
+++ b/icons/aldisud.svg
@@ -0,0 +1 @@
+Aldi Süd
\ No newline at end of file
From 4d767d48fadca89fe0349f9d925fa71488a9e659 Mon Sep 17 00:00:00 2001
From: Sachin Raja
Date: Fri, 8 Oct 2021 08:24:40 -0700
Subject: [PATCH 162/626] update python extension repo link (#6683)
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index dfa75958f088..e14d353743c2 100644
--- a/README.md
+++ b/README.md
@@ -149,7 +149,7 @@ echo file_get_contents('path/to/package/icons/simpleicons.svg');
| [Jetpack Compose library](https://github.com/DevSrSouza/compose-icons) | [@devsrsouza](https://github.com/devsrsouza/) |
| [Kirby plugin](https://github.com/runxel/kirby3-simpleicons) | [@runxel](https://github.com/runxel) |
| [Laravel Package](https://github.com/ublabs/blade-simple-icons) | [@adrian-ub](https://github.com/adrian-ub) |
-| [Python package](https://github.com/sachinraja/simpleicons) | [@sachinraja](https://github.com/sachinraja) |
+| [Python package](https://github.com/sachinraja/simple-icons-py) | [@sachinraja](https://github.com/sachinraja) |
| [React package](https://github.com/icons-pack/react-simple-icons) | [@wootsbot](https://github.com/wootsbot) |
| [Svelte package](https://github.com/icons-pack/svelte-simple-icons) | [@wootsbot](https://github.com/wootsbot) |
| [Vue package](https://github.com/mainvest/vue-simple-icons) | [@noahlitvin](https://github.com/noahlitvin) |
From 3f8c9c0c7aac8770151a9fd69251751ceaa3534d Mon Sep 17 00:00:00 2001
From: anatawa12
Date: Sat, 9 Oct 2021 01:05:36 +0900
Subject: [PATCH 163/626] Add Wiki.js (#6676)
---
_data/simple-icons.json | 5 +++++
icons/wikidotjs.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/wikidotjs.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 49aab2708661..c08a4a05cd56 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -10436,6 +10436,11 @@
"hex": "8B8B8B",
"source": "https://commons.wikipedia.org/wiki/File:WiiU.svg"
},
+ {
+ "title": "Wiki.js",
+ "hex": "1976D2",
+ "source": "https://cdn.js.wiki/images/wikijs-butterfly-mono.svg"
+ },
{
"title": "Wikidata",
"hex": "006699",
diff --git a/icons/wikidotjs.svg b/icons/wikidotjs.svg
new file mode 100644
index 000000000000..d211fa31caf5
--- /dev/null
+++ b/icons/wikidotjs.svg
@@ -0,0 +1 @@
+Wiki.js
From 81ad7ddd8567be5253097af216d18bd72487fc91 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C5=82=20Zapotoczny?=
<81389751+Zapotoczny-Rafal@users.noreply.github.com>
Date: Fri, 8 Oct 2021 18:34:07 +0200
Subject: [PATCH 164/626] Add Allegro icon (#6631)
* Update simple-icons.json
* Add files via upload
* Update simple-icons.json
* Delete appwrite.svg
* Add Allegro icon
---
_data/simple-icons.json | 5 +++++
icons/allegro.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/allegro.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index c08a4a05cd56..8a648441ea05 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -385,6 +385,11 @@
"hex": "006643",
"source": "https://www.alitalia.com/it_it/fly-alitalia/in-flight/ulisse-magazine.html"
},
+ {
+ "title": "Allegro",
+ "hex": "FF5A00",
+ "source": "https://allegro.pl/"
+ },
{
"title": "AlliedModders",
"hex": "1578D3",
diff --git a/icons/allegro.svg b/icons/allegro.svg
new file mode 100644
index 000000000000..7c0f27ca92be
--- /dev/null
+++ b/icons/allegro.svg
@@ -0,0 +1 @@
+Allegro
\ No newline at end of file
From 86c686deb4fa1835a2a0d0fa743307dfcf11ce6f Mon Sep 17 00:00:00 2001
From: Hagen Hyena
Date: Fri, 8 Oct 2021 17:43:29 +0100
Subject: [PATCH 165/626] Add FiveM (#6655)
* add fivem
* fix incorrect fivem colour
* Use correct FiveM brand colour
* Fix FiveM source typo
---
_data/simple-icons.json | 5 +++++
icons/fivem.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/fivem.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 8a648441ea05..b350360242f2 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -3155,6 +3155,11 @@
"hex": "CA0404",
"source": "https://www.fite.tv/"
},
+ {
+ "title": "FiveM",
+ "hex": "F40552",
+ "source": "https://fivem.net/"
+ },
{
"title": "Fiverr",
"hex": "1DBF73",
diff --git a/icons/fivem.svg b/icons/fivem.svg
new file mode 100644
index 000000000000..46f72f3b17ac
--- /dev/null
+++ b/icons/fivem.svg
@@ -0,0 +1 @@
+FiveM
\ No newline at end of file
From 29a3d7cd90f2fcd491fda3cbbdf994557f455f20 Mon Sep 17 00:00:00 2001
From: Kristoffer Forsgren
Date: Fri, 8 Oct 2021 22:41:58 +0200
Subject: [PATCH 166/626] Adding RescueTime icon (#6301)
* Adding RescueTime icon
* Corrected logo
* Corrected alignment
* Updated color and source of color
* Updated brand color
* Updated source URL
---
_data/simple-icons.json | 5 +++++
icons/rescuetime.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/rescuetime.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index b350360242f2..a401f6eb3d7f 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -7930,6 +7930,11 @@
"hex": "667881",
"source": "https://repl.it/"
},
+ {
+ "title": "RescueTime",
+ "hex": "161A3B",
+ "source": "https://www.rescuetime.com/press"
+ },
{
"title": "ResearchGate",
"hex": "00CCBB",
diff --git a/icons/rescuetime.svg b/icons/rescuetime.svg
new file mode 100644
index 000000000000..1a9f2ca6d295
--- /dev/null
+++ b/icons/rescuetime.svg
@@ -0,0 +1 @@
+RescueTime
\ No newline at end of file
From 236c109f57016b25e5bac43156e10670df2ac8c2 Mon Sep 17 00:00:00 2001
From: Engin Diri
Date: Sat, 9 Oct 2021 09:49:57 +0200
Subject: [PATCH 167/626] Add Globus icon (#6564)
Signed-off-by: Engin Diri
---
_data/simple-icons.json | 5 +++++
icons/globus.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/globus.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index a401f6eb3d7f..a94dbb58d681 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -3570,6 +3570,11 @@
"hex": "3333FF",
"source": "https://glitch.com/about/press/"
},
+ {
+ "title": "Globus",
+ "hex": "CA6201",
+ "source": "https://www.globus.de/"
+ },
{
"title": "Gmail",
"hex": "EA4335",
diff --git a/icons/globus.svg b/icons/globus.svg
new file mode 100644
index 000000000000..fe987e706d2f
--- /dev/null
+++ b/icons/globus.svg
@@ -0,0 +1 @@
+Globus
\ No newline at end of file
From 72f4b20dc9442363df7577ee0a32d6686703d86f Mon Sep 17 00:00:00 2001
From: Jorge Amado Soria Ramirez
Date: Sat, 9 Oct 2021 10:10:32 -0500
Subject: [PATCH 168/626] adding InteractJS logo (#6207)
* adding InteractJS logo
* Update simple-icons.json
Co-authored-by: jsoria
---
_data/simple-icons.json | 5 +++++
icons/interactjs.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/interactjs.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index a94dbb58d681..77318718fdbf 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -4554,6 +4554,11 @@
"source": "https://www.jetbrains.com/idea/",
"guidelines": "https://www.jetbrains.com/company/brand/"
},
+ {
+ "title": "InteractJS",
+ "hex": "2599ED",
+ "source": "https://github.com/taye/interact.js/blob/603c34d4b34dece8a260381e2e5991b810d6d739/img/ijs-icon.svg"
+ },
{
"title": "Intercom",
"hex": "6AFDEF",
diff --git a/icons/interactjs.svg b/icons/interactjs.svg
new file mode 100644
index 000000000000..54ba0e620dae
--- /dev/null
+++ b/icons/interactjs.svg
@@ -0,0 +1 @@
+InteractJS
\ No newline at end of file
From ea5b9703234ab221001ce04abdfede160c2475ea Mon Sep 17 00:00:00 2001
From: Jorge Amado Soria Ramirez
Date: Sat, 9 Oct 2021 10:17:43 -0500
Subject: [PATCH 169/626] adding flyway icon (#6204)
* adding flyway icon
* correcting color
* Update simple-icons.json
* Delete package-lock.json
Co-authored-by: jsoria
---
_data/simple-icons.json | 5 +++++
icons/flyway.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/flyway.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 77318718fdbf..7f6804cbfad0 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -3223,6 +3223,11 @@
"source": "https://flutter.dev/brand",
"guidelines": "https://flutter.dev/brand"
},
+ {
+ "title": "Flyway",
+ "hex": "CC0200",
+ "source": "https://github.com/flyway/flywaydb.org/blob/8a7923cb9ead016442d4c5caf2e8ba5a9bfad5cf/assets/logo/flyway-logo.png"
+ },
{
"title": "FMOD",
"hex": "000000",
diff --git a/icons/flyway.svg b/icons/flyway.svg
new file mode 100644
index 000000000000..406c47c57b56
--- /dev/null
+++ b/icons/flyway.svg
@@ -0,0 +1 @@
+Flyway
\ No newline at end of file
From 58073d29cdbb22a953d48b25289c2994c0d29e58 Mon Sep 17 00:00:00 2001
From: Jorge Amado Soria Ramirez
Date: Sat, 9 Oct 2021 10:32:47 -0500
Subject: [PATCH 170/626] adding SCP Foundation logo (#6212)
* adding SCP Foundation logo
* inverted scp logo
Co-authored-by: jsoria
---
_data/simple-icons.json | 5 +++++
icons/scpfoundation.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/scpfoundation.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 7f6804cbfad0..5df7f9424e78 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -8307,6 +8307,11 @@
"hex": "E9711C",
"source": "https://www.scopus.com/"
},
+ {
+ "title": "SCP Foundation",
+ "hex": "FFFFFF",
+ "source": "https://scp-wiki.wikidot.com/"
+ },
{
"title": "Scratch",
"hex": "4D97FF",
diff --git a/icons/scpfoundation.svg b/icons/scpfoundation.svg
new file mode 100644
index 000000000000..10770696f310
--- /dev/null
+++ b/icons/scpfoundation.svg
@@ -0,0 +1 @@
+SCP Foundation
\ No newline at end of file
From be7a7c34068e262fe39b5d382d5abbb9f8d9d932 Mon Sep 17 00:00:00 2001
From: Stanislav
Date: Sat, 9 Oct 2021 18:48:13 +0300
Subject: [PATCH 171/626] Added O'Reilly icon (#6687)
---
_data/simple-icons.json | 6 ++++++
icons/oreilly.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/oreilly.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 5df7f9424e78..f536bc8f8000 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -6496,6 +6496,12 @@
"source": "https://nzxt.com/",
"guidelines": "https://nzxt.com/about/brand-guidelines"
},
+ {
+ "title": "O'Reilly",
+ "hex": "D3002D",
+ "source": "https://www.oreilly.com/about/logos/",
+ "guidelines": "https://www.oreilly.com/about/logos/"
+ },
{
"title": "OBS Studio",
"hex": "302E31",
diff --git a/icons/oreilly.svg b/icons/oreilly.svg
new file mode 100644
index 000000000000..530f60057eda
--- /dev/null
+++ b/icons/oreilly.svg
@@ -0,0 +1 @@
+O'Reilly
\ No newline at end of file
From a33cd9c8eb0af9d5036504bf67245fea6cf37e5a Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Sun, 10 Oct 2021 00:12:46 +0000
Subject: [PATCH 172/626] version bump
---
package.json | 2 +-
slugs.md | 31 +++++++++++++++++++++++++++++++
2 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/package.json b/package.json
index b698e6ab48ba..7d94b18ae8ea 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "simple-icons",
- "version": "5.17.0",
+ "version": "5.18.0",
"description": "SVG icons for popular brands https://simpleicons.org",
"homepage": "https://simpleicons.org",
"keywords": [
diff --git a/slugs.md b/slugs.md
index c1c2c777ab3d..dc1a6e514d4f 100644
--- a/slugs.md
+++ b/slugs.md
@@ -73,6 +73,8 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `AirPlay Video` | `airplayvideo` |
| `Airtable` | `airtable` |
| `Alacritty` | `alacritty` |
+| `Aldi Nord` | `aldinord` |
+| `Aldi Süd` | `aldisud` |
| `Alfa Romeo` | `alfaromeo` |
| `Alfred` | `alfred` |
| `Algolia` | `algolia` |
@@ -81,6 +83,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `AliExpress` | `aliexpress` |
| `Alipay` | `alipay` |
| `Alitalia` | `alitalia` |
+| `Allegro` | `allegro` |
| `AlliedModders` | `alliedmodders` |
| `AlloCiné` | `allocine` |
| `AllTrails` | `alltrails` |
@@ -155,6 +158,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Apple TV` | `appletv` |
| `AppSignal` | `appsignal` |
| `AppVeyor` | `appveyor` |
+| `Appwrite` | `appwrite` |
| `ARAL` | `aral` |
| `ArangoDB` | `arangodb` |
| `Arch Linux` | `archlinux` |
@@ -164,6 +168,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Arduino` | `arduino` |
| `ARK Ecosystem` | `arkecosystem` |
| `Arlo` | `arlo` |
+| `Artifact Hub` | `artifacthub` |
| `Artix Linux` | `artixlinux` |
| `ArtStation` | `artstation` |
| `arXiv` | `arxiv` |
@@ -174,6 +179,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Ask Ubuntu` | `askubuntu` |
| `ASKfm` | `askfm` |
| `AssemblyScript` | `assemblyscript` |
+| `Aston Martin` | `astonmartin` |
| `ASUS` | `asus` |
| `AT&T` | `atandt` |
| `Atari` | `atari` |
@@ -192,6 +198,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `AutoHotkey` | `autohotkey` |
| `Automattic` | `automattic` |
| `Autoprefixer` | `autoprefixer` |
+| `Avast` | `avast` |
| `Awesome Lists` | `awesomelists` |
| `awesomeWM` | `awesomewm` |
| `AWS Amplify` | `awsamplify` |
@@ -383,6 +390,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Codio` | `codio` |
| `CoffeeScript` | `coffeescript` |
| `Cognizant` | `cognizant` |
+| `Coil` | `coil` |
| `Coinbase` | `coinbase` |
| `Commerzbank` | `commerzbank` |
| `Common Workflow Language` | `commonworkflowlanguage` |
@@ -440,6 +448,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Databricks` | `databricks` |
| `DataCamp` | `datacamp` |
| `Datadog` | `datadog` |
+| `DataGrip` | `datagrip` |
| `Dataiku` | `dataiku` |
| `DataStax` | `datastax` |
| `DatoCMS` | `datocms` |
@@ -611,6 +620,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `FIRST` | `first` |
| `Fitbit` | `fitbit` |
| `FITE` | `fite` |
+| `FiveM` | `fivem` |
| `Fiverr` | `fiverr` |
| `Flask` | `flask` |
| `Flathub` | `flathub` |
@@ -622,6 +632,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Flood` | `flood` |
| `Fluentd` | `fluentd` |
| `Flutter` | `flutter` |
+| `Flyway` | `flyway` |
| `FMOD` | `fmod` |
| `Fnac` | `fnac` |
| `Folium` | `folium` |
@@ -640,6 +651,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Foxtel` | `foxtel` |
| `Fozzy` | `fozzy` |
| `Framer` | `framer` |
+| `Framework7` | `framework7` |
| `Franprix` | `franprix` |
| `Fraunhofer-Gesellschaft` | `fraunhofergesellschaft` |
| `FreeBSD` | `freebsd` |
@@ -677,6 +689,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Gitee` | `gitee` |
| `GitHub` | `github` |
| `GitHub Actions` | `githubactions` |
+| `GitHub Pages` | `githubpages` |
| `GitHub Sponsors` | `githubsponsors` |
| `GitKraken` | `gitkraken` |
| `GitLab` | `gitlab` |
@@ -684,6 +697,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Gitter` | `gitter` |
| `Glassdoor` | `glassdoor` |
| `Glitch` | `glitch` |
+| `Globus` | `globus` |
| `Gmail` | `gmail` |
| `GNOME` | `gnome` |
| `GNU` | `gnu` |
@@ -864,6 +878,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Integromat` | `integromat` |
| `Intel` | `intel` |
| `IntelliJ IDEA` | `intellijidea` |
+| `InteractJS` | `interactjs` |
| `Intercom` | `intercom` |
| `Internet Archive` | `internetarchive` |
| `Internet Explorer` | `internetexplorer` |
@@ -959,6 +974,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `KnowledgeBase` | `knowledgebase` |
| `Known` | `known` |
| `Ko-fi` | `kofi` |
+| `Koa` | `koa` |
| `Koc` | `koc` |
| `Kodi` | `kodi` |
| `Koding` | `koding` |
@@ -1017,6 +1033,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Litecoin` | `litecoin` |
| `LiveChat` | `livechat` |
| `LiveJournal` | `livejournal` |
+| `Livewire` | `livewire` |
| `LLVM` | `llvm` |
| `LMMS` | `lmms` |
| `Lodash` | `lodash` |
@@ -1200,6 +1217,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Notion` | `notion` |
| `Notist` | `notist` |
| `Noun Project` | `nounproject` |
+| `NOW` | `now` |
| `npm` | `npm` |
| `Nrwl` | `nrwl` |
| `Nubank` | `nubank` |
@@ -1212,6 +1230,8 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Nuxt.js` | `nuxtdotjs` |
| `NVIDIA` | `nvidia` |
| `Nx` | `nx` |
+| `NZXT` | `nzxt` |
+| `O'Reilly` | `oreilly` |
| `OBS Studio` | `obsstudio` |
| `Observable` | `observable` |
| `OCaml` | `ocaml` |
@@ -1290,10 +1310,12 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `PayPal` | `paypal` |
| `Paytm` | `paytm` |
| `PCGamingWiki` | `pcgamingwiki` |
+| `Peak Design` | `peakdesign` |
| `PeerTube` | `peertube` |
| `Pegasus Airlines` | `pegasusairlines` |
| `Pelican` | `pelican` |
| `Peloton` | `peloton` |
+| `Penny` | `penny` |
| `Pepsi` | `pepsi` |
| `Perforce` | `perforce` |
| `Perl` | `perl` |
@@ -1465,6 +1487,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Redbubble` | `redbubble` |
| `Reddit` | `reddit` |
| `Redis` | `redis` |
+| `Redmine` | `redmine` |
| `Redux` | `redux` |
| `Redux-Saga` | `reduxsaga` |
| `RedwoodJS` | `redwoodjs` |
@@ -1475,6 +1498,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `RenovateBot` | `renovatebot` |
| `Renren` | `renren` |
| `Replit` | `replit` |
+| `RescueTime` | `rescuetime` |
| `ResearchGate` | `researchgate` |
| `Resurrection Remix OS` | `resurrectionremixos` |
| `RetroArch` | `retroarch` |
@@ -1496,9 +1520,11 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Roblox` | `roblox` |
| `Robot Framework` | `robotframework` |
| `Rocket.Chat` | `rocketdotchat` |
+| `Rocky Linux` | `rockylinux` |
| `Roku` | `roku` |
| `Rolls-Royce` | `rollsroyce` |
| `rollup.js` | `rollupdotjs` |
+| `Rome` | `rome` |
| `Roots` | `roots` |
| `Roots Bedrock` | `rootsbedrock` |
| `Roots Sage` | `rootssage` |
@@ -1537,6 +1563,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `scikit-learn` | `scikitlearn` |
| `SciPy` | `scipy` |
| `Scopus` | `scopus` |
+| `SCP Foundation` | `scpfoundation` |
| `Scratch` | `scratch` |
| `Screencastify` | `screencastify` |
| `Scribd` | `scribd` |
@@ -1612,6 +1639,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Snapchat` | `snapchat` |
| `Snapcraft` | `snapcraft` |
| `Snowflake` | `snowflake` |
+| `Snowpack` | `snowpack` |
| `Snyk` | `snyk` |
| `Society6` | `society6` |
| `Socket.io` | `socketdotio` |
@@ -1752,6 +1780,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Terraform` | `terraform` |
| `Tesco` | `tesco` |
| `Tesla` | `tesla` |
+| `TestCafe` | `testcafe` |
| `Testin` | `testin` |
| `Testing Library` | `testinglibrary` |
| `Textpattern` | `textpattern` |
@@ -1933,6 +1962,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `WEBTOON` | `webtoon` |
| `WeChat` | `wechat` |
| `Weights & Biases` | `weightsandbiases` |
+| `Welcome to the Jungle` | `welcometothejungle` |
| `WEMO` | `wemo` |
| `WeTransfer` | `wetransfer` |
| `WhatsApp` | `whatsapp` |
@@ -1940,6 +1970,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `WhiteSource` | `whitesource` |
| `Wii` | `wii` |
| `Wii U` | `wiiu` |
+| `Wiki.js` | `wikidotjs` |
| `Wikidata` | `wikidata` |
| `Wikimedia Commons` | `wikimediacommons` |
| `Wikipedia` | `wikipedia` |
From b7375ec336e71023f19193edaacfb108ee2bd551 Mon Sep 17 00:00:00 2001
From: Alexandre Paradis
Date: Sun, 10 Oct 2021 03:58:35 -0400
Subject: [PATCH 173/626] Detect potential duplicated issues (#4817)
* Draft: Detect potential duplicated issues
* Change threshold for 0.7
- Remove confused emoji
* Reduce exclusion list
* Fixes from review
- Add newline before `jobs`
- Remove inline documentation
- Remove reactions
- Use proper sentence
* Use `|` symbol for comments
* Fix exclusion order
* Add some exclusions
---
.github/workflows/potential-duplicates.yml | 36 ++++++++++++++++++++++
1 file changed, 36 insertions(+)
create mode 100644 .github/workflows/potential-duplicates.yml
diff --git a/.github/workflows/potential-duplicates.yml b/.github/workflows/potential-duplicates.yml
new file mode 100644
index 000000000000..47d2d8219b3c
--- /dev/null
+++ b/.github/workflows/potential-duplicates.yml
@@ -0,0 +1,36 @@
+name: Potential Duplicates
+on:
+ issues:
+ types: [opened, edited]
+
+jobs:
+ run:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: bubkoo/potential-duplicates@v1
+ with:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ label: potential duplicate
+ exclude: |
+ adding
+ add
+ creating
+ create
+ icons
+ icon
+ logos
+ logo
+ missing
+ miss
+ needing
+ need
+ please
+ requesting
+ request
+ state: all
+ threshold: 0.7
+ comment: |
+ This issue is potentially a duplicate of one of the following issues:
+ {{#issues}}
+ - [#{{ number }}] {{ title }} ({{ accuracy }}%)
+ {{/issues}}
From b2e1747d39d1d44cfcc8ee039ba83d0f2e096a92 Mon Sep 17 00:00:00 2001
From: Amandeep Singh <35252877+adsingh14@users.noreply.github.com>
Date: Sun, 10 Oct 2021 11:06:53 -0700
Subject: [PATCH 174/626] personio icon re-uploaded (#6700)
* personio icon re-uploaded
* centered icon
---
_data/simple-icons.json | 5 +++++
icons/personio.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/personio.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index f536bc8f8000..b7d633dcb293 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -6977,6 +6977,11 @@
"hex": "39457E",
"source": "https://github.com/tpf/marketing-materials/blob/6765c6fd71bc5b123d6c1a77b86e08cdd6376078/images/onion-logo/tpf-logo-onion.svg"
},
+ {
+ "title": "Personio",
+ "hex": "FFFFFF",
+ "source": "https://www.personio.com/"
+ },
{
"title": "Peugeot",
"hex": "000000",
diff --git a/icons/personio.svg b/icons/personio.svg
new file mode 100644
index 000000000000..1d62594bffc9
--- /dev/null
+++ b/icons/personio.svg
@@ -0,0 +1 @@
+Personio
\ No newline at end of file
From 20e7c258aacae5b8946c60a3d0c310daafca50a7 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 10 Oct 2021 20:53:19 -0700
Subject: [PATCH 175/626] Update all dependencies (#6706)
Co-authored-by: Renovate Bot
---
.github/workflows/add-labels-priority.yml | 6 +++---
package.json | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/add-labels-priority.yml b/.github/workflows/add-labels-priority.yml
index afbd3f7ab94c..73e61909b3ae 100644
--- a/.github/workflows/add-labels-priority.yml
+++ b/.github/workflows/add-labels-priority.yml
@@ -38,7 +38,7 @@ jobs:
- id: priority-1
name: Assign `icon outdated` pull requests to "Priority 1"
- uses: srggrs/assign-one-project-github-action@1.2.1
+ uses: srggrs/assign-one-project-github-action@1.3.1
if: contains(steps.get-labels.outputs.labels, 'icon outdated')
with:
project: https://github.com/orgs/simple-icons/projects/2
@@ -46,7 +46,7 @@ jobs:
- id: priority-2
name: Assign `new icon` pull requests to "Priority 2"
- uses: srggrs/assign-one-project-github-action@1.2.1
+ uses: srggrs/assign-one-project-github-action@1.3.1
# the PR has the `new icon` label along with a linked issue and
# the opener is not a member of simple-icons organization
if: |
@@ -58,7 +58,7 @@ jobs:
column_name: Priority 2
- name: Assign pull requests to "Unprioritised"
- uses: srggrs/assign-one-project-github-action@1.2.1
+ uses: srggrs/assign-one-project-github-action@1.3.1
if: |
steps.priority-1.conclusion == 'skipped' &&
steps.priority-2.conclusion == 'skipped'
diff --git a/package.json b/package.json
index 7d94b18ae8ea..8d8bc89e3e00 100644
--- a/package.json
+++ b/package.json
@@ -19,8 +19,8 @@
"license": "CC0-1.0",
"devDependencies": {
"editorconfig-checker": "4.0.2",
- "jest": "27.2.2",
- "jest-diff": "27.2.2",
+ "jest": "27.2.5",
+ "jest-diff": "27.2.5",
"jsonschema": "1.4.0",
"named-html-entities-json": "0.1.0",
"npm-run-all": "4.1.5",
From e49dd4b479f624c231102c8b59b787f5485668a3 Mon Sep 17 00:00:00 2001
From: Jorge Amado Soria Ramirez
Date: Sun, 10 Oct 2021 23:00:52 -0500
Subject: [PATCH 176/626] added uptobox icon (#6244)
* added uptobox icon
* added indent to the B, straighten the angle on the t
* Update simple-icons.json
Co-authored-by: jsoria
---
_data/simple-icons.json | 5 +++++
icons/uptobox.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/uptobox.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index b7d633dcb293..1ef0f84a85df 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -10030,6 +10030,11 @@
"hex": "150400",
"source": "https://www.ups.com/"
},
+ {
+ "title": "Uptobox",
+ "hex": "5CE1E6",
+ "source": "https://uptoboxpremium.org/"
+ },
{
"title": "Upwork",
"hex": "6FDA44",
diff --git a/icons/uptobox.svg b/icons/uptobox.svg
new file mode 100644
index 000000000000..f751d39c9741
--- /dev/null
+++ b/icons/uptobox.svg
@@ -0,0 +1 @@
+Uptobox
\ No newline at end of file
From 74680d58a769f567f5eae3a8dd30587fdc48b9b2 Mon Sep 17 00:00:00 2001
From: Amandeep Singh <35252877+adsingh14@users.noreply.github.com>
Date: Tue, 12 Oct 2021 07:38:16 -0700
Subject: [PATCH 177/626] Steelseries icon (#6711)
* steelseries icon
* steelseries icon
---
_data/simple-icons.json | 5 +++++
icons/steelseries.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/steelseries.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 1ef0f84a85df..4e8b7895b028 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -9090,6 +9090,11 @@
"hex": "1E1E1E",
"source": "https://partner.steamgames.com/"
},
+ {
+ "title": "Steelseries",
+ "hex": "FF5200",
+ "source": "https://techblog.steelseries.com/ux-guide/index.html"
+ },
{
"title": "Steem",
"hex": "171FC9",
diff --git a/icons/steelseries.svg b/icons/steelseries.svg
new file mode 100644
index 000000000000..65c51ac2ed69
--- /dev/null
+++ b/icons/steelseries.svg
@@ -0,0 +1 @@
+Steelseries
\ No newline at end of file
From 7556a5e377fb784ae4fcfc1ccb7b7f1cecb84579 Mon Sep 17 00:00:00 2001
From: Sachin Raja
Date: Tue, 12 Oct 2021 16:37:10 -0700
Subject: [PATCH 178/626] add Gunicorn (#6720)
* add gunicorn icon
* fix path size
---
_data/simple-icons.json | 5 +++++
icons/gunicorn.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/gunicorn.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 4e8b7895b028..b7d51075ae80 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -4003,6 +4003,11 @@
"hex": "72EF36",
"source": "https://www.gumtree.com"
},
+ {
+ "title": "Gunicorn",
+ "hex": "499848",
+ "source": "https://github.com/benoitc/gunicorn/blob/ff58e0c6da83d5520916bc4cc109a529258d76e1/docs/logo/gunicorn.svg"
+ },
{
"title": "Gutenberg",
"hex": "000000",
diff --git a/icons/gunicorn.svg b/icons/gunicorn.svg
new file mode 100644
index 000000000000..08eda3694550
--- /dev/null
+++ b/icons/gunicorn.svg
@@ -0,0 +1 @@
+Gunicorn
\ No newline at end of file
From 8748293fb762cf17db83b626e7d069677c8ed658 Mon Sep 17 00:00:00 2001
From: Simon Golms <17799657+SimonGolms@users.noreply.github.com>
Date: Wed, 13 Oct 2021 06:01:40 +0200
Subject: [PATCH 179/626] Add sourcetree icon (#6701)
* feat: add sourcetree icon
* fix(sourcetree): adjust precision
* updated icon
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 6 ++++++
icons/sourcetree.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/sourcetree.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index b7d51075ae80..9039373afb5a 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -8834,6 +8834,12 @@
"source": "https://about.sourcegraph.com/handbook/marketing/brand/brand_guidelines",
"guidelines": "https://about.sourcegraph.com/handbook/marketing/brand/brand_guidelines"
},
+ {
+ "title": "Sourcetree",
+ "hex": "0052CC",
+ "source": "https://atlassian.design/resources/logo-library",
+ "guidelines": "https://atlassian.design/foundations/logos/"
+ },
{
"title": "Southwest Airlines",
"hex": "304CB2",
diff --git a/icons/sourcetree.svg b/icons/sourcetree.svg
new file mode 100644
index 000000000000..1f2d56c0c6b8
--- /dev/null
+++ b/icons/sourcetree.svg
@@ -0,0 +1 @@
+Sourcetree
\ No newline at end of file
From 9e67bc0c1e997a721c65f104946f3e0ec9161fdc Mon Sep 17 00:00:00 2001
From: jko <46694606+b-junkoo@users.noreply.github.com>
Date: Wed, 13 Oct 2021 08:59:05 -0400
Subject: [PATCH 180/626] Add Percy icon (#6677)
* percy
* percy
* percy
* percy
* Update simple-icons.json
* Delete percy.svg
* Add files via upload
* Added back the missing triangles
---
_data/simple-icons.json | 5 +++++
icons/percy.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/percy.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 9039373afb5a..e4f27b7499e7 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -6972,6 +6972,11 @@
"source": "http://gillettepepsicola.com/promotions-media/media-kit/",
"guidelines": "http://gillettepepsicola.com/promotions-media/media-kit/"
},
+ {
+ "title": "Percy",
+ "hex": "9E66BF",
+ "source": "https://percy.io/"
+ },
{
"title": "Perforce",
"hex": "404040",
diff --git a/icons/percy.svg b/icons/percy.svg
new file mode 100644
index 000000000000..5864e610a891
--- /dev/null
+++ b/icons/percy.svg
@@ -0,0 +1 @@
+Percy
\ No newline at end of file
From edccb2d60fbacf08c7ce18ec0bcc3a94a6d2fe16 Mon Sep 17 00:00:00 2001
From: ThesllaDev
Date: Wed, 13 Oct 2021 10:19:50 -0300
Subject: [PATCH 181/626] Create new icon msi (#6710)
* add svg from new icon micro-star international
* refresh data with new microstar international icon
* improving the icon title and adding aliases
* renaming the svg file and title
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 10 ++++++++++
icons/msi.svg | 1 +
2 files changed, 11 insertions(+)
create mode 100644 icons/msi.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index e4f27b7499e7..f3a2eeea28fa 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -6087,6 +6087,16 @@
"source": "https://mozilla.design/mozilla/",
"guidelines": "https://mozilla.design/mozilla/"
},
+ {
+ "title": "MSI",
+ "aliases": {
+ "aka": [
+ "Micro-Star International"
+ ]
+ },
+ "hex": "FF0000",
+ "source": "https://www.msi.com/page/brochure"
+ },
{
"title": "MTA",
"hex": "0039A6",
diff --git a/icons/msi.svg b/icons/msi.svg
new file mode 100644
index 000000000000..6261c8426828
--- /dev/null
+++ b/icons/msi.svg
@@ -0,0 +1 @@
+MSI
\ No newline at end of file
From 21af2cc05064028a3332d165736db38cfe27c102 Mon Sep 17 00:00:00 2001
From: Ross Hill
Date: Thu, 14 Oct 2021 22:40:40 -0400
Subject: [PATCH 182/626] Add Backbone.js (#6714)
* Add Backbone.js
* Add 0.5px gaps
* Add gap to middle
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 9 +++++++++
icons/backbonedotjs.svg | 1 +
2 files changed, 10 insertions(+)
create mode 100644 icons/backbonedotjs.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index f3a2eeea28fa..52572ebb8059 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -1020,6 +1020,15 @@
"hex": "F9DC3E",
"source": "https://github.com/babel/website/blob/93330158b6ecca1ab88d3be8dbf661f5c2da6c76/website/static/img/babel-black.svg"
},
+ {
+ "title": "Backbone.js",
+ "hex": "0071B5",
+ "source": "https://upload.wikimedia.org/wikipedia/commons/2/20/Backbone.js_logo.svg",
+ "license": {
+ "type": "MIT",
+ "url": "https://github.com/jashkenas/backbone/blob/master/LICENSE"
+ }
+ },
{
"title": "Badgr",
"hex": "282C4C",
diff --git a/icons/backbonedotjs.svg b/icons/backbonedotjs.svg
new file mode 100644
index 000000000000..963149f65e43
--- /dev/null
+++ b/icons/backbonedotjs.svg
@@ -0,0 +1 @@
+Backbone.js
\ No newline at end of file
From ddc3b0b4aeee6cbdde32867473d75d03dd289d21 Mon Sep 17 00:00:00 2001
From: Simon Golms <17799657+SimonGolms@users.noreply.github.com>
Date: Fri, 15 Oct 2021 22:22:47 +0200
Subject: [PATCH 183/626] feat: add aqua icon (#5993)
* feat: add aqua icon
* fix(aqua): update guideline and source link
* Update simple-icons.json
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 6 ++++++
icons/aqua.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/aqua.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 52572ebb8059..d2cc5294b644 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -766,6 +766,12 @@
"hex": "F02E65",
"source": "https://github.com/appwrite/appwrite/blob/c961382fb7a59ce908b4982a572e02e6e0feacd5/public/images/appwrite.svg"
},
+ {
+ "title": "Aqua",
+ "hex": "1904DA",
+ "source": "https://www.aquasec.com/brand/",
+ "guidelines": "https://www.aquasec.com/brand/"
+ },
{
"title": "ARAL",
"hex": "0063CB",
diff --git a/icons/aqua.svg b/icons/aqua.svg
new file mode 100644
index 000000000000..8207737ed006
--- /dev/null
+++ b/icons/aqua.svg
@@ -0,0 +1 @@
+Aqua
From dddce3e093be2a186f4628f2156ebb52dfa11a87 Mon Sep 17 00:00:00 2001
From: Jorge Amado Soria Ramirez
Date: Sat, 16 Oct 2021 01:29:11 -0500
Subject: [PATCH 184/626] updated Samsung Pay icon (#6234)
* updated Pay app icon
* reverted changes to polywork.svg
* reverted changes to polywork.svg
* changed the Samsung Pay icon
* reworked after Sachin's review
Co-authored-by: jsoria
---
icons/samsungpay.svg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/icons/samsungpay.svg b/icons/samsungpay.svg
index b4e653adb05b..6066a11f2881 100644
--- a/icons/samsungpay.svg
+++ b/icons/samsungpay.svg
@@ -1 +1 @@
-Samsung Pay
\ No newline at end of file
+Samsung Pay
\ No newline at end of file
From 4073e6dccc1b5f6ae5c73edf1b75eb4589abc027 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Sun, 17 Oct 2021 00:12:29 +0000
Subject: [PATCH 185/626] version bump
---
package.json | 2 +-
slugs.md | 9 +++++++++
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 8d8bc89e3e00..12455b8ac973 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "simple-icons",
- "version": "5.18.0",
+ "version": "5.19.0",
"description": "SVG icons for popular brands https://simpleicons.org",
"homepage": "https://simpleicons.org",
"keywords": [
diff --git a/slugs.md b/slugs.md
index dc1a6e514d4f..8c72a65c17a4 100644
--- a/slugs.md
+++ b/slugs.md
@@ -159,6 +159,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `AppSignal` | `appsignal` |
| `AppVeyor` | `appveyor` |
| `Appwrite` | `appwrite` |
+| `Aqua` | `aqua` |
| `ARAL` | `aral` |
| `ArangoDB` | `arangodb` |
| `Arch Linux` | `archlinux` |
@@ -209,6 +210,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Azure Pipelines` | `azurepipelines` |
| `B&R Automation` | `bandrautomation` |
| `Babel` | `babel` |
+| `Backbone.js` | `backbonedotjs` |
| `Badgr` | `badgr` |
| `Badoo` | `badoo` |
| `Baidu` | `baidu` |
@@ -773,6 +775,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `gulp` | `gulp` |
| `Gumroad` | `gumroad` |
| `Gumtree` | `gumtree` |
+| `Gunicorn` | `gunicorn` |
| `Gutenberg` | `gutenberg` |
| `Habr` | `habr` |
| `Hack Club` | `hackclub` |
@@ -1158,6 +1161,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Moscow Metro` | `moscowmetro` |
| `Motorola` | `motorola` |
| `Mozilla` | `mozilla` |
+| `MSI` | `msi` |
| `MTA` | `mta` |
| `MTR` | `mtr` |
| `Mumble` | `mumble` |
@@ -1317,8 +1321,10 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Peloton` | `peloton` |
| `Penny` | `penny` |
| `Pepsi` | `pepsi` |
+| `Percy` | `percy` |
| `Perforce` | `perforce` |
| `Perl` | `perl` |
+| `Personio` | `personio` |
| `Peugeot` | `peugeot` |
| `Pexels` | `pexels` |
| `pfSense` | `pfsense` |
@@ -1659,6 +1665,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Source Engine` | `sourceengine` |
| `SourceForge` | `sourceforge` |
| `Sourcegraph` | `sourcegraph` |
+| `Sourcetree` | `sourcetree` |
| `Southwest Airlines` | `southwestairlines` |
| `Spacemacs` | `spacemacs` |
| `SpaceX` | `spacex` |
@@ -1706,6 +1713,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Steam` | `steam` |
| `SteamDB` | `steamdb` |
| `Steamworks` | `steamworks` |
+| `Steelseries` | `steelseries` |
| `Steem` | `steem` |
| `Steemit` | `steemit` |
| `Steinberg` | `steinberg` |
@@ -1886,6 +1894,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `UpLabs` | `uplabs` |
| `Uploaded` | `uploaded` |
| `UPS` | `ups` |
+| `Uptobox` | `uptobox` |
| `Upwork` | `upwork` |
| `USPS` | `usps` |
| `V` | `v` |
From 4cdd85b3602bbf48da8064f250cd6d2377a49c5d Mon Sep 17 00:00:00 2001
From: Vitaly <7338823+zv09@users.noreply.github.com>
Date: Mon, 18 Oct 2021 05:48:16 +0300
Subject: [PATCH 186/626] Add Tether (USDT) Icon (#6502)
* add: Tether icon
- added tether icon to icons folder in svg 24x24
- svg icon optimized with SVGOMG Online Tool
- tether icon description added to simple-icons.json with its meta
* fix: correct tether syntax in _data/simple-icons.json
* fix: correct tether syntax in _data/simple-icons.json
* fix: remove aliases and left only one
* fix: remove comma in alias
* add: guidelines for tether
---
_data/simple-icons.json | 11 +++++++++++
icons/tether.svg | 1 +
2 files changed, 12 insertions(+)
create mode 100644 icons/tether.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index d2cc5294b644..4c457a56704a 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -9550,6 +9550,17 @@
"hex": "E33332",
"source": "https://testing-library.com/"
},
+ {
+ "title": "Tether",
+ "hex": "50AF95",
+ "aliases": {
+ "aka": [
+ "USDt"
+ ]
+ },
+ "source": "https://tether.to/branding/",
+ "guidelines": "https://tether.to/branding/"
+ },
{
"title": "Textpattern",
"hex": "FFDA44",
diff --git a/icons/tether.svg b/icons/tether.svg
new file mode 100644
index 000000000000..fa3461d06426
--- /dev/null
+++ b/icons/tether.svg
@@ -0,0 +1 @@
+Tether
\ No newline at end of file
From ec31f39d5adb75def0e0f66611f3d5d5a16702a3 Mon Sep 17 00:00:00 2001
From: Engin Diri
Date: Tue, 19 Oct 2021 00:05:25 +0200
Subject: [PATCH 187/626] Add arm icon (#6480)
Signed-off-by: Engin Diri
---
_data/simple-icons.json | 6 ++++++
icons/arm.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/arm.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 4c457a56704a..dff192fae9de 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -819,6 +819,12 @@
"hex": "49B48A",
"source": "https://www.arlo.com/"
},
+ {
+ "title": "Arm",
+ "hex": "0091BD",
+ "source": "https://www.arm.com/",
+ "guidelines": "https://www.arm.com/company/policies/trademarks/guidelines-corporate-logo"
+ },
{
"title": "Artifact Hub",
"hex": "417598",
diff --git a/icons/arm.svg b/icons/arm.svg
new file mode 100644
index 000000000000..3f27667666e8
--- /dev/null
+++ b/icons/arm.svg
@@ -0,0 +1 @@
+Arm
\ No newline at end of file
From 6521a4a88e843119ea6055b000b5c319bc5417d2 Mon Sep 17 00:00:00 2001
From: Simon Golms <17799657+SimonGolms@users.noreply.github.com>
Date: Tue, 19 Oct 2021 02:03:34 +0200
Subject: [PATCH 188/626] feat: add icon create-react-app (#6734)
* feat: add icon create-react-app
* fix(create-react-app): add closing svg tag
* fix(create-react-app): use permalink for source
---
_data/simple-icons.json | 5 +++++
icons/createreactapp.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/createreactapp.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index dff192fae9de..cabb6c00099e 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -2097,6 +2097,11 @@
"hex": "E5422B",
"source": "https://craftcms.com/brand-resources"
},
+ {
+ "title": "Create React App",
+ "hex": "09D3AC",
+ "source": "https://github.com/facebook/create-react-app/blob/9d0369b1fe3260e620b08effcf85f1edefc5d1ea/docusaurus/website/static/img/logo.svg"
+ },
{
"title": "Creative Commons",
"hex": "EF9421",
diff --git a/icons/createreactapp.svg b/icons/createreactapp.svg
new file mode 100644
index 000000000000..ceb1ecc7a337
--- /dev/null
+++ b/icons/createreactapp.svg
@@ -0,0 +1 @@
+Create React App
\ No newline at end of file
From 53d297c162c79a64900cbbd2515deace79495db1 Mon Sep 17 00:00:00 2001
From: Colton Mumley
Date: Mon, 18 Oct 2021 21:58:29 -0400
Subject: [PATCH 189/626] Feature/add contribution info to readme (#6737)
* Add GroupMe icon
* Add information about how to contribute to README
* Add newline to bottom of readme
Co-authored-by: Jorge Amado Soria Ramirez
---
README.md | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/README.md b/README.md
index e14d353743c2..1e299fb8dc90 100644
--- a/README.md
+++ b/README.md
@@ -156,3 +156,9 @@ echo file_get_contents('path/to/package/icons/simpleicons.svg');
| [WordPress plugin](https://wordpress.org/plugins/simple-icons/) | [@tjtaylo](https://github.com/tjtaylo) |
[slug]: ./slugs.md
+
+## Contribute
+
+Information describing how to contribute can be found here:
+
+https://github.com/simple-icons/simple-icons/blob/develop/CONTRIBUTING.md
From 3c335d9a1295ad8bb83c524f3c11fa173fc7aa55 Mon Sep 17 00:00:00 2001
From: Stanislav
Date: Tue, 19 Oct 2021 05:08:13 +0300
Subject: [PATCH 190/626] Added 4chan icon (#6682)
* Added 4chan icon
* Fixed 4chan icon
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 5 +++++
icons/4chan.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/4chan.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index cabb6c00099e..3fcc917ef724 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -30,6 +30,11 @@
"hex": "000000",
"source": "https://www.42.fr/"
},
+ {
+ "title": "4chan",
+ "hex": "006600",
+ "source": "https://www.4chan.org/"
+ },
{
"title": "4D",
"hex": "004088",
diff --git a/icons/4chan.svg b/icons/4chan.svg
new file mode 100644
index 000000000000..c5c2e7f18d8a
--- /dev/null
+++ b/icons/4chan.svg
@@ -0,0 +1 @@
+4chan
\ No newline at end of file
From 08eb2afbcd235e607edda682b85add893d0f5bd5 Mon Sep 17 00:00:00 2001
From: Simon Golms <17799657+SimonGolms@users.noreply.github.com>
Date: Tue, 19 Oct 2021 07:04:44 +0200
Subject: [PATCH 191/626] Add i18next icon (#6750)
* feaet: add i18next icon
* fix(i18next): update color
---
_data/simple-icons.json | 5 +++++
icons/i18next.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/i18next.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 3fcc917ef724..831dada13998 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -4387,6 +4387,11 @@
"source": "https://en.wikipedia.org/wiki/File:Hyundai_Motor_Company_logo.svg",
"guidelines": "https://www.hyundai.pl/fileadmin/user_upload/media/logo/201607_HYU_Guideline_ENG_small.pdf"
},
+ {
+ "title": "i18next",
+ "hex": "26A69A",
+ "source": "https://github.com/i18next/i18next-gitbook/blob/32efcfd9c59ae55cc63a60e633dbc1651c7950ad/assets/img/logo.svg"
+ },
{
"title": "Iata",
"hex": "004E81",
diff --git a/icons/i18next.svg b/icons/i18next.svg
new file mode 100644
index 000000000000..de5ca7c9e1b5
--- /dev/null
+++ b/icons/i18next.svg
@@ -0,0 +1 @@
+i18next
\ No newline at end of file
From d8bfda152b73cd4ddf0465288cb10477fb6ecc2f Mon Sep 17 00:00:00 2001
From: Benno Bielmeier <32938211+bbenno@users.noreply.github.com>
Date: Tue, 19 Oct 2021 15:25:20 +0200
Subject: [PATCH 192/626] Add rotaryinternational.svg (#6196)
* Add rotaryinternational.svg
* updating Rotary icon
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 6 ++++++
icons/rotaryinternational.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/rotaryinternational.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 831dada13998..8e7215ba161b 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -8183,6 +8183,12 @@
"source": "https://www.ros.org/press-kit/",
"guidelines": "https://www.ros.org/press-kit/"
},
+ {
+ "title": "Rotary International",
+ "hex": "F7A81B",
+ "source": "https://www.rotary.org/en",
+ "guidelines": "https://my-cms.rotary.org/en/document/tell-rotarys-story-voice-and-visual-identity-guidelines-rotarians"
+ },
{
"title": "Rotten Tomatoes",
"hex": "FA320A",
diff --git a/icons/rotaryinternational.svg b/icons/rotaryinternational.svg
new file mode 100644
index 000000000000..b3e1afab66d8
--- /dev/null
+++ b/icons/rotaryinternational.svg
@@ -0,0 +1 @@
+Rotary International
\ No newline at end of file
From ad9170fb47020d9b6c2c5f862eabbfaa190b2bf1 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Sun, 24 Oct 2021 00:13:25 +0000
Subject: [PATCH 193/626] version bump
---
package.json | 2 +-
slugs.md | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 12455b8ac973..162555921177 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "simple-icons",
- "version": "5.19.0",
+ "version": "5.20.0",
"description": "SVG icons for popular brands https://simpleicons.org",
"homepage": "https://simpleicons.org",
"keywords": [
diff --git a/slugs.md b/slugs.md
index 8c72a65c17a4..ac7704c45247 100644
--- a/slugs.md
+++ b/slugs.md
@@ -13,6 +13,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `1Password` | `1password` |
| `3M` | `3m` |
| `42` | `42` |
+| `4chan` | `4chan` |
| `4D` | `4d` |
| `500px` | `500px` |
| `A-Frame` | `aframe` |
@@ -169,6 +170,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Arduino` | `arduino` |
| `ARK Ecosystem` | `arkecosystem` |
| `Arlo` | `arlo` |
+| `Arm` | `arm` |
| `Artifact Hub` | `artifacthub` |
| `Artix Linux` | `artixlinux` |
| `ArtStation` | `artstation` |
@@ -418,6 +420,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Coveralls` | `coveralls` |
| `cPanel` | `cpanel` |
| `Craft CMS` | `craftcms` |
+| `Create React App` | `createreactapp` |
| `Creative Commons` | `creativecommons` |
| `Crehana` | `crehana` |
| `Crowdin` | `crowdin` |
@@ -842,6 +845,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Hyperledger` | `hyperledger` |
| `Hypothesis` | `hypothesis` |
| `Hyundai` | `hyundai` |
+| `i18next` | `i18next` |
| `Iata` | `iata` |
| `iBeacon` | `ibeacon` |
| `IBM` | `ibm` |
@@ -1535,6 +1539,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Roots Bedrock` | `rootsbedrock` |
| `Roots Sage` | `rootssage` |
| `ROS` | `ros` |
+| `Rotary International` | `rotaryinternational` |
| `Rotten Tomatoes` | `rottentomatoes` |
| `Roundcube` | `roundcube` |
| `RSS` | `rss` |
@@ -1791,6 +1796,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `TestCafe` | `testcafe` |
| `Testin` | `testin` |
| `Testing Library` | `testinglibrary` |
+| `Tether` | `tether` |
| `Textpattern` | `textpattern` |
| `The Conversation` | `theconversation` |
| `The Irish Times` | `theirishtimes` |
From 07c9ba1b54cb4b583a9ca69e20f6957e5e30766e Mon Sep 17 00:00:00 2001
From: Ross Hill
Date: Mon, 25 Oct 2021 09:03:02 -0400
Subject: [PATCH 194/626] Fix Swift icon and colour (#6753)
* Fix Swift icon and colour
* Increase precision and add guidelines
* Base on black icon
* Fix lint error
---
_data/simple-icons.json | 5 +++--
icons/swift.svg | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 8e7215ba161b..0dea91f94607 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -9372,8 +9372,9 @@
},
{
"title": "Swift",
- "hex": "FA7343",
- "source": "https://developer.apple.com/develop/"
+ "hex": "F05138",
+ "source": "https://developer.apple.com/swift/resources/",
+ "guidelines": "https://developer.apple.com/swift/resources/"
},
{
"title": "Swiggy",
diff --git a/icons/swift.svg b/icons/swift.svg
index 60b4ac573c66..ffaf098efc7f 100644
--- a/icons/swift.svg
+++ b/icons/swift.svg
@@ -1 +1 @@
-Swift
\ No newline at end of file
+Swift
\ No newline at end of file
From e0df400494a32cadffb2bb7a7ddbaff6608239b0 Mon Sep 17 00:00:00 2001
From: Eric Cornelissen
Date: Mon, 25 Oct 2021 21:13:10 +0200
Subject: [PATCH 195/626] Setup prettier (#6758)
* Add prettier as a dependency
* Add format command and configure prettier
I opted for single quotes to be in line with other simple-icons projects
I ignore the data file because changing its formatting is quite a bit of
trouble for all open PRs.
* Run prettier
* Replace all functions by arrow functions
* Move prettier configuration to config file
Move it to a file so editors (and other software) can pick up on the
configuration. I went with .js because (a) it allows for comments and
(2) it seems most of the config files are in JavaScript already.
* Add prettier --check when running npm run lint (This adds it to the CI as well)
* Add husky and format changes before committing
* Use object destructuring for imports consistently
* Add shebang and fileoverview to jsonlint.js
---
.github/ISSUE_TEMPLATE/documentation.yml | 4 +-
.github/ISSUE_TEMPLATE/icon_removal.yml | 4 +-
.github/ISSUE_TEMPLATE/icon_request.yml | 14 +-
.github/ISSUE_TEMPLATE/icon_update.yml | 10 +-
.github/ISSUE_TEMPLATE/package.yml | 4 +-
.github/renovate.json5 | 8 +-
.github/workflows/create-release.yml | 8 +-
.husky/pre-commit | 7 +
.prettierignore | 10 +
.prettierrc.js | 4 +
.svglintrc.js | 1360 ++++++++++++----------
jest.config.js | 2 +-
package.json | 8 +-
scripts/build/package.js | 56 +-
scripts/get-filename.js | 7 +-
scripts/lint/jsonlint.js | 16 +-
scripts/lint/ourlint.js | 34 +-
scripts/release/bump-version.js | 24 +-
scripts/release/update-cdn-urls.js | 28 +-
scripts/release/update-slugs-table.js | 16 +-
scripts/utils.js | 52 +-
svgo.config.js | 10 +-
tests/icons.test.js | 12 +-
tests/index.test.js | 14 +-
24 files changed, 958 insertions(+), 754 deletions(-)
create mode 100644 .husky/pre-commit
create mode 100644 .prettierignore
create mode 100644 .prettierrc.js
diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml
index 3f100766dcf5..8eda84b4f128 100644
--- a/.github/ISSUE_TEMPLATE/documentation.yml
+++ b/.github/ISSUE_TEMPLATE/documentation.yml
@@ -41,7 +41,7 @@ body:
This is an open source project and we welcome contributions. Do you want to
work on this issue?
options:
- - "Yes"
- - "No"
+ - Yes
+ - No
validations:
required: true
diff --git a/.github/ISSUE_TEMPLATE/icon_removal.yml b/.github/ISSUE_TEMPLATE/icon_removal.yml
index ec93af125582..52c7ec45ab4e 100644
--- a/.github/ISSUE_TEMPLATE/icon_removal.yml
+++ b/.github/ISSUE_TEMPLATE/icon_removal.yml
@@ -1,6 +1,6 @@
name: Icon removal
description: Report an icon for removal
-title: "Remove: "
+title: 'Remove: '
labels: [removal request]
body:
@@ -18,7 +18,7 @@ body:
- type: input
attributes:
label: Brand Name
- placeholder: "Example: Simple Icons"
+ placeholder: 'Example: Simple Icons'
validations:
required: true
diff --git a/.github/ISSUE_TEMPLATE/icon_request.yml b/.github/ISSUE_TEMPLATE/icon_request.yml
index 36bd1db301a4..c739288feb57 100644
--- a/.github/ISSUE_TEMPLATE/icon_request.yml
+++ b/.github/ISSUE_TEMPLATE/icon_request.yml
@@ -1,6 +1,6 @@
name: Icon request
description: Request a new icon for Simple Icons
-title: "Request: "
+title: 'Request: '
labels: [new icon]
body:
@@ -25,7 +25,7 @@ body:
- type: input
attributes:
label: Brand Name
- placeholder: "Example: Simple Icons"
+ placeholder: 'Example: Simple Icons'
validations:
required: true
@@ -35,7 +35,7 @@ body:
description: >-
For non-web brands you can add a relevant link. You can put "None" if you don't
think there's a website.
- placeholder: "Example: https://simpleicons.org"
+ placeholder: 'Example: https://simpleicons.org'
validations:
required: true
@@ -50,7 +50,7 @@ body:
[alexa rank]: https://www.alexa.com/siteinfo
- placeholder: "Example: The Alexa rank is 249,089. See https://www.alexa.com/siteinfo/simpleicons.org"
+ placeholder: 'Example: The Alexa rank is 249,089. See https://www.alexa.com/siteinfo/simpleicons.org'
validations:
required: true
@@ -75,7 +75,7 @@ body:
- Are there multiple options for the logo and/or color?
- Is the icon released under a license?
- If you think the brand might not be accepted, why do you think it should be considered?
- placeholder: "Example: There are two variants of this icon..."
+ placeholder: 'Example: There are two variants of this icon...'
- type: dropdown
attributes:
@@ -84,7 +84,7 @@ body:
This is an open source project and we welcome contributions. Do you want to
add this icon?
options:
- - "Yes"
- - "No"
+ - Yes
+ - No
validations:
required: true
diff --git a/.github/ISSUE_TEMPLATE/icon_update.yml b/.github/ISSUE_TEMPLATE/icon_update.yml
index bd4c55186831..56582090c758 100644
--- a/.github/ISSUE_TEMPLATE/icon_update.yml
+++ b/.github/ISSUE_TEMPLATE/icon_update.yml
@@ -1,6 +1,6 @@
name: Icon update
description: Help us improve by reporting outdated icons
-title: "Update: "
+title: 'Update: '
labels: [icon outdated]
body:
@@ -18,7 +18,7 @@ body:
- type: input
attributes:
label: Brand Name
- placeholder: "Example: Simple Icons"
+ placeholder: 'Example: Simple Icons'
validations:
required: true
@@ -42,7 +42,7 @@ body:
Is there anything else we should know about the brand? Remember that not everyone knows the brand as well as you do. For example:
- Are there multiple options for the logo and/or color?
- Is the icon released under a license?
- placeholder: "Example: There are two variants of this icon..."
+ placeholder: 'Example: There are two variants of this icon...'
- type: dropdown
attributes:
@@ -51,7 +51,7 @@ body:
This is an open source project and we welcome contributions. Do you want to
update this icon?
options:
- - "Yes"
- - "No"
+ - Yes
+ - No
validations:
required: true
diff --git a/.github/ISSUE_TEMPLATE/package.yml b/.github/ISSUE_TEMPLATE/package.yml
index 0b802eb516eb..557d7b0df625 100644
--- a/.github/ISSUE_TEMPLATE/package.yml
+++ b/.github/ISSUE_TEMPLATE/package.yml
@@ -34,7 +34,7 @@ body:
- type: input
attributes:
label: Package Version
- placeholder: "Example: 5.11.0"
+ placeholder: 'Example: 5.11.0'
validations:
required: true
@@ -59,6 +59,6 @@ body:
- For bugs: "Steps to reproduce" and "Expected behavior"
- For feature requests: An example of a use case
- For performance: An example where performance is poor
- placeholder: "Example: The NPM package does not work for my use case..."
+ placeholder: 'Example: The NPM package does not work for my use case...'
validations:
required: true
diff --git a/.github/renovate.json5 b/.github/renovate.json5
index 7614541f70e2..96af6135f979 100644
--- a/.github/renovate.json5
+++ b/.github/renovate.json5
@@ -1,19 +1,19 @@
{
extends: [
- "config:base",
+ 'config:base',
// Make sure we get a single PR combining all updates
- "group:all",
+ 'group:all',
],
// Disable dependency dashboard
dependencyDashboard: false,
// Use our labelling system
- labels: ["dependencies"],
+ labels: ['dependencies'],
// Schedule the PRs to interleave with our release schedule
- schedule: "on the 2nd and 4th day instance on sunday after 11pm",
+ schedule: 'on the 2nd and 4th day instance on sunday after 11pm',
// We generally always want the major version
separateMajorMinor: false,
diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml
index ca08509ef8ec..9bf4be3afc10 100644
--- a/.github/workflows/create-release.yml
+++ b/.github/workflows/create-release.yml
@@ -5,7 +5,7 @@ on:
workflow_dispatch:
schedule:
# "At 00:00 on Sunday" (https://crontab.guru/once-a-week)
- - cron: "0 0 * * 0"
+ - cron: '0 0 * * 0'
# This Workflow can be triggered manually through the GitHub UI or API. For the
# API use the following request:
@@ -51,6 +51,6 @@ jobs:
uses: stefanzweifel/git-auto-commit-action@v4.12.0
with:
commit_message: version bump
- commit_user_name: "github-actions[bot]"
- commit_user_email: "github-actions[bot]@users.noreply.github.com"
- commit_author: "github-actions[bot] "
+ commit_user_name: 'github-actions[bot]'
+ commit_user_email: 'github-actions[bot]@users.noreply.github.com'
+ commit_author: 'github-actions[bot] '
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100644
index 000000000000..77a5cc0e3d6c
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,7 @@
+#!/bin/sh
+. "$(dirname $0)/_/husky.sh"
+
+git stash -q --keep-index
+npm run format
+git add .
+git stash pop -q
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 000000000000..74ccaa939ba7
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,10 @@
+# We prefer our own custom formatting for MarkDown files.
+# See the following thread for the discussion:
+# https://github.com/simple-icons/simple-icons-font/pull/73
+*.md
+
+# We use our own formatting for the data files.
+_data/simple-icons.json
+
+# JavaScript templates are invalid JavaScript so cannot be formatted.
+scripts/build/templates/*.js
diff --git a/.prettierrc.js b/.prettierrc.js
new file mode 100644
index 000000000000..9166a0443afc
--- /dev/null
+++ b/.prettierrc.js
@@ -0,0 +1,4 @@
+module.exports = {
+ trailingComma: 'all',
+ singleQuote: true,
+};
diff --git a/.svglintrc.js b/.svglintrc.js
index 45b1be49b23f..d9ec9f121236 100644
--- a/.svglintrc.js
+++ b/.svglintrc.js
@@ -1,13 +1,14 @@
const fs = require('fs');
-const data = require("./_data/simple-icons.json");
-const { htmlFriendlyToTitle } = require("./scripts/utils.js");
-const htmlNamedEntities = require("named-html-entities-json");
-const svgpath = require("svgpath");
-const svgPathBbox = require("svg-path-bbox");
-const parsePath = require("svg-path-segments");
-
-const svgRegexp = /^.*<\/title><\/svg>\r?\n?$/;
+const data = require('./_data/simple-icons.json');
+const { htmlFriendlyToTitle } = require('./scripts/utils.js');
+const htmlNamedEntities = require('named-html-entities-json');
+const svgpath = require('svgpath');
+const svgPathBbox = require('svg-path-bbox');
+const parsePath = require('svg-path-segments');
+
+const svgRegexp =
+ /^.*<\/title><\/svg>\r?\n?$/;
const negativeZerosRegexp = /-0(?=[^\.]|[\s\d\w]|$)/g;
const iconSize = 24;
@@ -17,46 +18,46 @@ const iconTolerance = 0.001;
// set env SI_UPDATE_IGNORE to recreate the ignore file
const updateIgnoreFile = process.env.SI_UPDATE_IGNORE === 'true';
-const ignoreFile = "./.svglint-ignored.json";
+const ignoreFile = './.svglint-ignored.json';
const iconIgnored = !updateIgnoreFile ? require(ignoreFile) : {};
-function sortObjectByKey(obj) {
- return Object
- .keys(obj)
+const sortObjectByKey = (obj) => {
+ return Object.keys(obj)
.sort()
.reduce((r, k) => Object.assign(r, { [k]: obj[k] }), {});
-}
+};
-function sortObjectByValue(obj) {
- return Object
- .keys(obj)
+const sortObjectByValue = (obj) => {
+ return Object.keys(obj)
.sort((a, b) => ('' + obj[a]).localeCompare(obj[b]))
.reduce((r, k) => Object.assign(r, { [k]: obj[k] }), {});
-}
+};
-function removeLeadingZeros(number) {
+const removeLeadingZeros = (number) => {
// convert 0.03 to '.03'
return number.toString().replace(/^(-?)(0)(\.?.+)/, '$1$3');
-}
+};
/**
* Given three points, returns if the middle one (x2, y2) is collinear
* to the line formed by the two limit points.
**/
-function collinear(x1, y1, x2, y2, x3, y3) {
- return (x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2)) === 0;
-}
+const collinear = (x1, y1, x2, y2, x3, y3) => {
+ return x1 * (y2 - y3) + x2 * (y3 - y1) + x3 * (y1 - y2) === 0;
+};
/**
* Returns the number of digits after the decimal point.
* @param num The number of interest.
*/
-function countDecimals(num) {
+const countDecimals = (num) => {
if (num && num % 1) {
let [base, op, trail] = num.toExponential().split(/e([+-])/);
let elen = parseInt(trail, 10);
let idx = base.indexOf('.');
- return idx == -1 ? elen : base.length - idx - 1 + (op === '+' ? -elen : elen);
+ return idx == -1
+ ? elen
+ : base.length - idx - 1 + (op === '+' ? -elen : elen);
}
return 0;
};
@@ -65,674 +66,839 @@ function countDecimals(num) {
* Get the index at which the first path value of an SVG starts.
* @param svgFileContent The raw SVG as text.
*/
-function getPathDIndex(svgFileContent) {
+const getPathDIndex = (svgFileContent) => {
const pathDStart = ' title": 1,
- "svg > path": 1,
- "*": false,
- },
- attr: [
- { // ensure that the SVG elm has the appropriate attrs
- "role": "img",
- "viewBox": `0 0 ${iconSize} ${iconSize}`,
- "xmlns": "http://www.w3.org/2000/svg",
- "rule::selector": "svg",
- "rule::whitelist": true,
- },
- { // ensure that the title elm has the appropriate attr
- "rule::selector": "svg > title",
- "rule::whitelist": true,
- },
- { // ensure that the path element only has the 'd' attr (no style, opacity, etc.)
- "d": /^[,a-zA-Z0-9\. -]+$/,
- "rule::selector": "svg > path",
- "rule::whitelist": true,
+ rules: {
+ elm: {
+ svg: 1,
+ 'svg > title': 1,
+ 'svg > path': 1,
+ '*': false,
+ },
+ attr: [
+ {
+ // ensure that the SVG elm has the appropriate attrs
+ role: 'img',
+ viewBox: `0 0 ${iconSize} ${iconSize}`,
+ xmlns: 'http://www.w3.org/2000/svg',
+ 'rule::selector': 'svg',
+ 'rule::whitelist': true,
+ },
+ {
+ // ensure that the title elm has the appropriate attr
+ 'rule::selector': 'svg > title',
+ 'rule::whitelist': true,
+ },
+ {
+ // ensure that the path element only has the 'd' attr (no style, opacity, etc.)
+ d: /^[,a-zA-Z0-9\. -]+$/,
+ 'rule::selector': 'svg > path',
+ 'rule::whitelist': true,
+ },
+ ],
+ custom: [
+ (reporter, $, ast) => {
+ reporter.name = 'icon-title';
+
+ const iconTitleText = $.find('title').text(),
+ xmlNamedEntitiesCodepoints = [38, 60, 62],
+ xmlNamedEntities = ['amp', 'lt', 'gt'];
+ let _validCodepointsRepr = true;
+
+ // avoid character codepoints as hexadecimal representation
+ const hexadecimalCodepoints = Array.from(
+ iconTitleText.matchAll(/([A-Fa-f0-9]+);/g),
+ );
+ if (hexadecimalCodepoints.length > 0) {
+ _validCodepointsRepr = false;
+
+ hexadecimalCodepoints.forEach((match) => {
+ const charHexReprIndex =
+ getTitleTextIndex(ast.source) + match.index + 1;
+ const charDec = hexadecimalToDecimal(match[1]);
+
+ let charRepr;
+ if (xmlNamedEntitiesCodepoints.includes(charDec)) {
+ charRepr = `&${
+ xmlNamedEntities[xmlNamedEntitiesCodepoints.indexOf(charDec)]
+ };`;
+ } else if (charDec < 128) {
+ charRepr = String.fromCodePoint(charDec);
+ } else {
+ charRepr = `${charDec};`;
}
- ],
- custom: [
- function(reporter, $, ast) {
- reporter.name = "icon-title";
-
- const iconTitleText = $.find("title").text(),
- xmlNamedEntitiesCodepoints = [38, 60, 62],
- xmlNamedEntities = ["amp", "lt", "gt"];
- let _validCodepointsRepr = true;
-
- // avoid character codepoints as hexadecimal representation
- const hexadecimalCodepoints = Array.from(
- iconTitleText.matchAll(/([A-Fa-f0-9]+);/g)
+
+ reporter.error(
+ `Hexadecimal representation of encoded character "${match[0]}" found at index ${charHexReprIndex}:` +
+ ` replace it with "${charRepr}".`,
);
- if (hexadecimalCodepoints.length > 0) {
+ });
+ }
+
+ // avoid character codepoints as named entities
+ const namedEntitiesCodepoints = Array.from(
+ iconTitleText.matchAll(/&([A-Za-z0-9]+);/g),
+ );
+ if (namedEntitiesCodepoints.length > 0) {
+ namedEntitiesCodepoints.forEach((match) => {
+ const namedEntiyReprIndex =
+ getTitleTextIndex(ast.source) + match.index + 1;
+
+ if (!xmlNamedEntities.includes(match[1].toLowerCase())) {
_validCodepointsRepr = false;
-
- hexadecimalCodepoints.forEach(match => {
- const charHexReprIndex = getTitleTextIndex(ast.source) + match.index + 1;
- const charDec = hexadecimalToDecimal(match[1]);
-
- let charRepr;
- if (xmlNamedEntitiesCodepoints.includes(charDec)) {
- charRepr = `&${xmlNamedEntities[xmlNamedEntitiesCodepoints.indexOf(charDec)]};`;
- } else if (charDec < 128) {
- charRepr = String.fromCodePoint(charDec);
+ const namedEntityJsRepr = htmlNamedEntities[match[1]];
+ let replacement;
+
+ if (
+ namedEntityJsRepr === undefined ||
+ namedEntityJsRepr.length != 1
+ ) {
+ replacement = 'its decimal or literal representation';
+ } else {
+ const namedEntityDec = namedEntityJsRepr.codePointAt(0);
+ if (namedEntityDec < 128) {
+ replacement = `"${namedEntityJsRepr}"`;
} else {
- charRepr = `${charDec};`;
+ replacement = `"${namedEntityDec};"`;
}
+ }
- reporter.error(
- `Hexadecimal representation of encoded character "${match[0]}" found at index ${charHexReprIndex}:`
- + ` replace it with "${charRepr}".`
- );
- })
+ reporter.error(
+ `Named entity representation of encoded character "${match[0]}" found at index ${namedEntiyReprIndex}.` +
+ ` Replace it with ${replacement}.`,
+ );
}
+ });
+ }
+
+ if (_validCodepointsRepr) {
+ // compare encoded title with original title and report error if not equal
+ const encodingMatches = Array.from(
+ iconTitleText.matchAll(/&(#([0-9]+)|(amp|quot|lt|gt));/g),
+ ),
+ encodedBuf = [];
+
+ const _indexesToIgnore = [];
+ for (let m = 0; m < encodingMatches.length; m++) {
+ let index = encodingMatches[m].index;
+ for (let r = index; r < index + encodingMatches[m][0].length; r++) {
+ _indexesToIgnore.push(r);
+ }
+ }
- // avoid character codepoints as named entities
- const namedEntitiesCodepoints = Array.from(
- iconTitleText.matchAll(/&([A-Za-z0-9]+);/g)
- );
- if (namedEntitiesCodepoints.length > 0) {
- namedEntitiesCodepoints.forEach(match => {
- const namedEntiyReprIndex = getTitleTextIndex(ast.source) + match.index + 1;
-
- if (!xmlNamedEntities.includes(match[1].toLowerCase())) {
- _validCodepointsRepr = false;
- const namedEntityJsRepr = htmlNamedEntities[match[1]];
- let replacement;
-
- if (namedEntityJsRepr === undefined || namedEntityJsRepr.length != 1) {
- replacement = 'its decimal or literal representation';
- } else {
- const namedEntityDec = namedEntityJsRepr.codePointAt(0);
- if (namedEntityDec < 128) {
- replacement = `"${namedEntityJsRepr}"`;
- } else {
- replacement = `"${namedEntityDec};"`;
- }
- }
-
- reporter.error(
- `Named entity representation of encoded character "${match[0]}" found at index ${namedEntiyReprIndex}.`
- + ` Replace it with ${replacement}.`
- );
- }
- })
+ for (let i = iconTitleText.length - 1; i >= 0; i--) {
+ if (_indexesToIgnore.includes(i)) {
+ encodedBuf.unshift(iconTitleText[i]);
+ } else {
+ // encode all non ascii characters plus "'&<> (XML named entities)
+ let charDecimalCode = iconTitleText.charCodeAt(i);
+
+ if (charDecimalCode > 127) {
+ encodedBuf.unshift(`${charDecimalCode};`);
+ } else if (xmlNamedEntitiesCodepoints.includes(charDecimalCode)) {
+ encodedBuf.unshift(
+ `&${
+ xmlNamedEntities[
+ xmlNamedEntitiesCodepoints.indexOf(charDecimalCode)
+ ]
+ };`,
+ );
+ } else {
+ encodedBuf.unshift(iconTitleText[i]);
+ }
}
+ }
+ const encodedIconTitleText = encodedBuf.join('');
+ if (encodedIconTitleText !== iconTitleText) {
+ _validCodepointsRepr = false;
- if (_validCodepointsRepr) {
- // compare encoded title with original title and report error if not equal
- const encodingMatches = Array.from(iconTitleText.matchAll(/&(#([0-9]+)|(amp|quot|lt|gt));/g)),
- encodedBuf = [];
+ reporter.error(
+ `Unencoded unicode characters found in title "${iconTitleText}":` +
+ ` rewrite it as "${encodedIconTitleText}".`,
+ );
+ }
- const _indexesToIgnore = [];
- for (let m = 0; m < encodingMatches.length; m++) {
- let index = encodingMatches[m].index;
- for (let r = index; r < index + encodingMatches[m][0].length; r++) {
- _indexesToIgnore.push(r)
- }
- }
+ // check if there are some other encoded characters in decimal notation
+ // which shouldn't be encoded
+ encodingMatches
+ .filter((m) => !isNaN(m[2]))
+ .forEach((match) => {
+ const decimalNumber = parseInt(match[2]);
+ if (decimalNumber < 128) {
+ _validCodepointsRepr = false;
- for (let i = iconTitleText.length - 1; i >= 0; i--) {
- if (_indexesToIgnore.includes(i)) {
- encodedBuf.unshift(iconTitleText[i]);
+ const decimalCodepointCharIndex =
+ getTitleTextIndex(ast.source) + match.index + 1;
+ if (xmlNamedEntitiesCodepoints.includes(decimalNumber)) {
+ replacement = `"&${
+ xmlNamedEntities[
+ xmlNamedEntitiesCodepoints.indexOf(decimalNumber)
+ ]
+ };"`;
} else {
- // encode all non ascii characters plus "'&<> (XML named entities)
- let charDecimalCode = iconTitleText.charCodeAt(i);
-
- if (charDecimalCode > 127) {
- encodedBuf.unshift(`${charDecimalCode};`);
- } else if (xmlNamedEntitiesCodepoints.includes(charDecimalCode)) {
- encodedBuf.unshift(
- `&${xmlNamedEntities[xmlNamedEntitiesCodepoints.indexOf(charDecimalCode)]};`
- );
- } else {
- encodedBuf.unshift(iconTitleText[i]);
- }
+ replacement = String.fromCharCode(decimalNumber);
+ replacement = replacement == '"' ? `'"'` : `"${replacement}"`;
}
- }
- const encodedIconTitleText = encodedBuf.join('');
- if (encodedIconTitleText !== iconTitleText) {
- _validCodepointsRepr = false;
reporter.error(
- `Unencoded unicode characters found in title "${iconTitleText}":`
- + ` rewrite it as "${encodedIconTitleText}".`
+ `Unnecessary encoded character "${match[0]}" found at index ${decimalCodepointCharIndex}:` +
+ ` replace it with ${replacement}.`,
);
}
+ });
- // check if there are some other encoded characters in decimal notation
- // which shouldn't be encoded
- encodingMatches.filter(m => !isNaN(m[2])).forEach(match => {
- const decimalNumber = parseInt(match[2]);
- if (decimalNumber < 128) {
- _validCodepointsRepr = false;
-
- const decimalCodepointCharIndex = getTitleTextIndex(ast.source) + match.index + 1;
- if (xmlNamedEntitiesCodepoints.includes(decimalNumber)) {
- replacement = `"&${xmlNamedEntities[xmlNamedEntitiesCodepoints.indexOf(decimalNumber)]};"`;
- } else {
- replacement = String.fromCharCode(decimalNumber);
- replacement = replacement == '"' ? `'"'` : `"${replacement}"`;
- }
-
- reporter.error(
- `Unnecessary encoded character "${match[0]}" found at index ${decimalCodepointCharIndex}:`
- + ` replace it with ${replacement}.`
- );
- }
- });
-
- if (_validCodepointsRepr) {
- const iconName = htmlFriendlyToTitle(iconTitleText);
- const iconExists = data.icons.some(icon => icon.title === iconName);
- if (!iconExists) {
- reporter.error(`No icon with title "${iconName}" found in simple-icons.json`);
- }
+ if (_validCodepointsRepr) {
+ const iconName = htmlFriendlyToTitle(iconTitleText);
+ const iconExists = data.icons.some(
+ (icon) => icon.title === iconName,
+ );
+ if (!iconExists) {
+ reporter.error(
+ `No icon with title "${iconName}" found in simple-icons.json`,
+ );
+ }
+ }
+ }
+ },
+ (reporter, $, ast) => {
+ reporter.name = 'icon-size';
+
+ const iconPath = $.find('path').attr('d');
+ if (!updateIgnoreFile && isIgnored(reporter.name, iconPath)) {
+ return;
+ }
+
+ const [minX, minY, maxX, maxY] = svgPathBbox(iconPath);
+ const width = +(maxX - minX).toFixed(iconFloatPrecision);
+ const height = +(maxY - minY).toFixed(iconFloatPrecision);
+
+ if (width === 0 && height === 0) {
+ reporter.error(
+ 'Path bounds were reported as 0 x 0; check if the path is valid',
+ );
+ if (updateIgnoreFile) {
+ ignoreIcon(reporter.name, iconPath, $);
+ }
+ } else if (width !== iconSize && height !== iconSize) {
+ reporter.error(
+ `Size of must be exactly ${iconSize} in one dimension; the size is currently ${width} x ${height}`,
+ );
+ if (updateIgnoreFile) {
+ ignoreIcon(reporter.name, iconPath, $);
+ }
+ }
+ },
+ (reporter, $, ast) => {
+ reporter.name = 'icon-precision';
+
+ const iconPath = $.find('path').attr('d');
+ if (!updateIgnoreFile && isIgnored(reporter.name, iconPath)) {
+ return;
+ }
+
+ const segments = parsePath(iconPath),
+ svgFileContent = $.html();
+
+ segments.forEach((segment) => {
+ const precisionMax = Math.max(
+ ...segment.params.slice(1).map(countDecimals),
+ );
+ if (precisionMax > iconMaxFloatPrecision) {
+ let errorMsg = `found ${precisionMax} decimals in segment "${iconPath.substring(
+ segment.start,
+ segment.end,
+ )}"`;
+ if (segment.chained) {
+ let readableChain = iconPath.substring(
+ segment.chainStart,
+ segment.chainEnd,
+ );
+ if (readableChain.length > 20) {
+ readableChain = `${readableChain.substring(0, 20)}...`;
}
+ errorMsg += ` of chain "${readableChain}"`;
}
- },
- function(reporter, $, ast) {
- reporter.name = "icon-size";
-
- const iconPath = $.find("path").attr("d");
- if (!updateIgnoreFile && isIgnored(reporter.name, iconPath)) {
- return;
+ errorMsg += ` at index ${
+ segment.start + getPathDIndex(svgFileContent)
+ }`;
+ reporter.error(
+ `Maximum precision should not be greater than ${iconMaxFloatPrecision}; ${errorMsg}`,
+ );
+ if (updateIgnoreFile) {
+ ignoreIcon(reporter.name, iconPath, $);
}
-
- const [minX, minY, maxX, maxY] = svgPathBbox(iconPath);
- const width = +(maxX - minX).toFixed(iconFloatPrecision);
- const height = +(maxY - minY).toFixed(iconFloatPrecision);
-
- if (width === 0 && height === 0) {
- reporter.error("Path bounds were reported as 0 x 0; check if the path is valid");
- if (updateIgnoreFile) {
- ignoreIcon(reporter.name, iconPath, $);
- }
- } else if (width !== iconSize && height !== iconSize) {
- reporter.error(`Size of must be exactly ${iconSize} in one dimension; the size is currently ${width} x ${height}`);
- if (updateIgnoreFile) {
- ignoreIcon(reporter.name, iconPath, $);
- }
+ }
+ });
+ },
+ (reporter, $, ast) => {
+ reporter.name = 'ineffective-segments';
+
+ const iconPath = $.find('path').attr('d');
+ if (!updateIgnoreFile && isIgnored(reporter.name, iconPath)) {
+ return;
+ }
+
+ const segments = parsePath(iconPath);
+ const absSegments = svgpath(iconPath).abs().unshort().segments;
+
+ const lowerMovementCommands = ['m', 'l'];
+ const lowerDirectionCommands = ['h', 'v'];
+ const lowerCurveCommand = 'c';
+ const lowerShorthandCurveCommand = 's';
+ const lowerCurveCommands = [
+ lowerCurveCommand,
+ lowerShorthandCurveCommand,
+ ];
+ const upperMovementCommands = ['M', 'L'];
+ const upperHorDirectionCommand = 'H';
+ const upperVerDirectionCommand = 'V';
+ const upperDirectionCommands = [
+ upperHorDirectionCommand,
+ upperVerDirectionCommand,
+ ];
+ const upperCurveCommand = 'C';
+ const upperShorthandCurveCommand = 'S';
+ const upperCurveCommands = [
+ upperCurveCommand,
+ upperShorthandCurveCommand,
+ ];
+ const curveCommands = [...lowerCurveCommands, ...upperCurveCommands];
+ const commands = [
+ ...lowerMovementCommands,
+ ...lowerDirectionCommands,
+ ...upperMovementCommands,
+ ...upperDirectionCommands,
+ ...curveCommands,
+ ];
+ const isInvalidSegment = (
+ [command, x1Coord, y1Coord, ...rest],
+ index,
+ ) => {
+ if (commands.includes(command)) {
+ // Relative directions (h or v) having a length of 0
+ if (lowerDirectionCommands.includes(command) && x1Coord === 0) {
+ return true;
}
- },
- function(reporter, $, ast) {
- reporter.name = "icon-precision";
-
- const iconPath = $.find("path").attr("d");
- if (!updateIgnoreFile && isIgnored(reporter.name, iconPath)) {
- return;
+ // Relative movement (m or l) having a distance of 0
+ if (
+ index > 0 &&
+ lowerMovementCommands.includes(command) &&
+ x1Coord === 0 &&
+ y1Coord === 0
+ ) {
+ return true;
}
-
- const segments = parsePath(iconPath),
- svgFileContent = $.html();
-
- segments.forEach((segment) => {
- const precisionMax = Math.max(...segment.params.slice(1).map(countDecimals));
- if (precisionMax > iconMaxFloatPrecision) {
- let errorMsg = `found ${precisionMax} decimals in segment "${iconPath.substring(segment.start, segment.end)}"`;
- if (segment.chained) {
- let readableChain = iconPath.substring(segment.chainStart, segment.chainEnd);
- if (readableChain.length > 20) {
- readableChain = `${readableChain.substring(0, 20)}...`;
- }
- errorMsg += ` of chain "${readableChain}"`
- }
- errorMsg += ` at index ${segment.start + getPathDIndex(svgFileContent)}`;
- reporter.error(`Maximum precision should not be greater than ${iconMaxFloatPrecision}; ${errorMsg}`);
- if (updateIgnoreFile) {
- ignoreIcon(reporter.name, iconPath, $);
- }
+ if (
+ lowerCurveCommands.includes(command) &&
+ x1Coord === 0 &&
+ y1Coord === 0
+ ) {
+ const [x2Coord, y2Coord] = rest;
+ if (
+ // Relative shorthand curve (s) having a control point of 0
+ command === lowerShorthandCurveCommand ||
+ // Relative bézier curve (c) having control points of 0
+ (command === lowerCurveCommand &&
+ x2Coord === 0 &&
+ y2Coord === 0)
+ ) {
+ return true;
}
- })
- },
- function(reporter, $, ast) {
- reporter.name = "ineffective-segments";
-
- const iconPath = $.find("path").attr("d");
- if (!updateIgnoreFile && isIgnored(reporter.name, iconPath)) {
- return;
}
-
- const segments = parsePath(iconPath);
- const absSegments = svgpath(iconPath).abs().unshort().segments;
-
- const lowerMovementCommands = ['m', 'l'];
- const lowerDirectionCommands = ['h', 'v'];
- const lowerCurveCommand = 'c';
- const lowerShorthandCurveCommand = 's';
- const lowerCurveCommands = [lowerCurveCommand, lowerShorthandCurveCommand];
- const upperMovementCommands = ['M', 'L'];
- const upperHorDirectionCommand = 'H';
- const upperVerDirectionCommand = 'V';
- const upperDirectionCommands = [upperHorDirectionCommand, upperVerDirectionCommand];
- const upperCurveCommand = 'C';
- const upperShorthandCurveCommand = 'S';
- const upperCurveCommands = [upperCurveCommand, upperShorthandCurveCommand];
- const curveCommands = [...lowerCurveCommands, ...upperCurveCommands];
- const commands = [...lowerMovementCommands, ...lowerDirectionCommands, ...upperMovementCommands, ...upperDirectionCommands, ...curveCommands];
- const isInvalidSegment = ([command, x1Coord, y1Coord, ...rest], index) => {
- if (commands.includes(command)) {
- // Relative directions (h or v) having a length of 0
- if (lowerDirectionCommands.includes(command) && x1Coord === 0) {
- return true;
- }
- // Relative movement (m or l) having a distance of 0
- if (index > 0 && lowerMovementCommands.includes(command) && x1Coord === 0 && y1Coord === 0) {
- return true;
- }
- if (lowerCurveCommands.includes(command) && x1Coord === 0 && y1Coord === 0) {
- const [x2Coord, y2Coord] = rest;
- if (
- // Relative shorthand curve (s) having a control point of 0
- command === lowerShorthandCurveCommand ||
- // Relative bézier curve (c) having control points of 0
- (command === lowerCurveCommand && x2Coord === 0 && y2Coord === 0)
- ) {
- return true;
- }
- }
- if (index > 0) {
- let [yPrevCoord, xPrevCoord] = [...absSegments[index - 1]].reverse();
- // If the previous command was a direction one, we need to iterate back until we find the missing coordinates
- if (upperDirectionCommands.includes(xPrevCoord)) {
- xPrevCoord = undefined;
- yPrevCoord = undefined;
- let idx = index;
- while (--idx > 0 && (xPrevCoord === undefined || yPrevCoord === undefined)) {
- let [yPrevCoordDeep, xPrevCoordDeep] = [...absSegments[idx]].reverse();
- // If the previous command was a horizontal movement, we need to consider the single coordinate as x
- if (upperHorDirectionCommand === xPrevCoordDeep) {
- xPrevCoordDeep = yPrevCoordDeep;
- yPrevCoordDeep = undefined;
- }
- // If the previous command was a vertical movement, we need to consider the single coordinate as y
- if (upperVerDirectionCommand === xPrevCoordDeep) {
- xPrevCoordDeep = undefined;
- }
- if (xPrevCoord === undefined && xPrevCoordDeep !== undefined) {
- xPrevCoord = xPrevCoordDeep;
- }
- if (yPrevCoord === undefined && yPrevCoordDeep !== undefined) {
- yPrevCoord = yPrevCoordDeep;
- }
- }
+ if (index > 0) {
+ let [yPrevCoord, xPrevCoord] = [
+ ...absSegments[index - 1],
+ ].reverse();
+ // If the previous command was a direction one, we need to iterate back until we find the missing coordinates
+ if (upperDirectionCommands.includes(xPrevCoord)) {
+ xPrevCoord = undefined;
+ yPrevCoord = undefined;
+ let idx = index;
+ while (
+ --idx > 0 &&
+ (xPrevCoord === undefined || yPrevCoord === undefined)
+ ) {
+ let [yPrevCoordDeep, xPrevCoordDeep] = [
+ ...absSegments[idx],
+ ].reverse();
+ // If the previous command was a horizontal movement, we need to consider the single coordinate as x
+ if (upperHorDirectionCommand === xPrevCoordDeep) {
+ xPrevCoordDeep = yPrevCoordDeep;
+ yPrevCoordDeep = undefined;
}
-
- if (upperCurveCommands.includes(command)) {
- const [x2Coord, y2Coord, xCoord, yCoord] = rest;
- // Absolute shorthand curve (S) having the same coordinate as the previous segment and a control point equal to the ending point
- if (upperShorthandCurveCommand === command && x1Coord === xPrevCoord && y1Coord === yPrevCoord && x1Coord === x2Coord && y1Coord === y2Coord) {
- return true;
- }
- // Absolute bézier curve (C) having the same coordinate as the previous segment and last control point equal to the ending point
- if (upperCurveCommand === command && x1Coord === xPrevCoord && y1Coord === yPrevCoord && x2Coord === xCoord && y2Coord === yCoord) {
- return true;
- }
+ // If the previous command was a vertical movement, we need to consider the single coordinate as y
+ if (upperVerDirectionCommand === xPrevCoordDeep) {
+ xPrevCoordDeep = undefined;
}
-
- return (
- // Absolute horizontal direction (H) having the same x coordinate as the previous segment
- (upperHorDirectionCommand === command && x1Coord === xPrevCoord) ||
- // Absolute vertical direction (V) having the same y coordinate as the previous segment
- (upperVerDirectionCommand === command && x1Coord === yPrevCoord) ||
- // Absolute movement (M or L) having the same coordinate as the previous segment
- (upperMovementCommands.includes(command) && x1Coord === xPrevCoord && y1Coord === yPrevCoord)
- );
- }
- }
- };
-
- const svgFileContent = $.html();
-
- segments.forEach((segment, index) => {
- if (isInvalidSegment(segment.params, index)) {
- const [command, x1, y1, ...rest] = segment.params;
-
- let errorMsg = `Innefective segment "${iconPath.substring(segment.start, segment.end)}" found`,
- resolutionTip = 'should be removed';
-
- if (curveCommands.includes(command)) {
- const [x2, y2, x, y] = rest;
-
- if (command === lowerShorthandCurveCommand && (x2 !== 0 || y2 !== 0)) {
- resolutionTip = `should be "l${removeLeadingZeros(x2)} ${removeLeadingZeros(y2)}" or removed`;
- }
- if (command === upperShorthandCurveCommand) {
- resolutionTip = `should be "L${removeLeadingZeros(x2)} ${removeLeadingZeros(y2)}" or removed`;
- }
- if (command === lowerCurveCommand && (x !== 0 || y !== 0)) {
- resolutionTip = `should be "l${removeLeadingZeros(x)} ${removeLeadingZeros(y)}" or removed`;
- }
- if (command === upperCurveCommand) {
- resolutionTip = `should be "L${removeLeadingZeros(x)} ${removeLeadingZeros(y)}" or removed`;
+ if (
+ xPrevCoord === undefined &&
+ xPrevCoordDeep !== undefined
+ ) {
+ xPrevCoord = xPrevCoordDeep;
}
- };
-
- if (segment.chained) {
- let readableChain = iconPath.substring(segment.chainStart, segment.chainEnd);
- if (readableChain.length > 20) {
- readableChain = `${chain.substring(0, 20)}...`
+ if (
+ yPrevCoord === undefined &&
+ yPrevCoordDeep !== undefined
+ ) {
+ yPrevCoord = yPrevCoordDeep;
}
- errorMsg += ` in chain "${readableChain}"`
- }
- errorMsg += ` at index ${segment.start + getPathDIndex(svgFileContent)}`;
-
- reporter.error(`${errorMsg} (${resolutionTip})`);
-
- if (updateIgnoreFile) {
- ignoreIcon(reporter.name, iconPath, $);
}
}
- })
- },
- function(reporter, $, ast) {
- reporter.name = "collinear-segments";
-
- const iconPath = $.find("path").attr("d");
- if (!updateIgnoreFile && isIgnored(reporter.name, iconPath)) {
- return;
- }
- /**
- * Extracts collinear coordinates from SVG path straight lines
- * (does not extracts collinear coordinates from curves).
- **/
- const getCollinearSegments = (iconPath) => {
- const segments = parsePath(iconPath),
- collinearSegments = [],
- straightLineCommands = 'HhVvLlMm',
- zCommands = 'Zz';
-
- let currLine = [],
- currAbsCoord = [undefined, undefined],
- startPoint,
- _inStraightLine = false,
- _nextInStraightLine = false,
- _resetStartPoint = false;
-
- for (let s = 0; s < segments.length; s++) {
- let seg = segments[s].params,
- cmd = seg[0],
- nextCmd = s + 1 < segments.length ? segments[s + 1][0] : null;
-
- if (cmd === 'L') {
- currAbsCoord[0] = seg[1];
- currAbsCoord[1] = seg[2];
- } else if (cmd === 'l') {
- currAbsCoord[0] = (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[1];
- currAbsCoord[1] = (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[2];
- } else if (cmd === 'm') {
- currAbsCoord[0] = (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[1];
- currAbsCoord[1] = (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[2];
- startPoint = undefined;
- } else if (cmd === 'M') {
- currAbsCoord[0] = seg[1];
- currAbsCoord[1] = seg[2];
- startPoint = undefined;
- } else if (cmd === 'H') {
- currAbsCoord[0] = seg[1];
- } else if (cmd === 'h') {
- currAbsCoord[0] = (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[1];
- } else if (cmd === 'V') {
- currAbsCoord[1] = seg[1];
- } else if (cmd === 'v') {
- currAbsCoord[1] = (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[1];
- } else if (cmd === 'C') {
- currAbsCoord[0] = seg[5];
- currAbsCoord[1] = seg[6];
- } else if (cmd === "a") {
- currAbsCoord[0] = (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[6];
- currAbsCoord[1] = (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[7];
- } else if (cmd === "A") {
- currAbsCoord[0] = seg[6];
- currAbsCoord[1] = seg[7];
- } else if (cmd === "s") {
- currAbsCoord[0] = (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[1];
- currAbsCoord[1] = (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[2];
- } else if (cmd === "S") {
- currAbsCoord[0] = seg[1];
- currAbsCoord[1] = seg[2];
- } else if (cmd === "t") {
- currAbsCoord[0] = (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[1];
- currAbsCoord[1] = (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[2];
- } else if (cmd === "T") {
- currAbsCoord[0] = seg[1];
- currAbsCoord[1] = seg[2];
- } else if (cmd === 'c') {
- currAbsCoord[0] = (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[5];
- currAbsCoord[1] = (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[6];
- } else if (cmd === 'Q') {
- currAbsCoord[0] = seg[3];
- currAbsCoord[1] = seg[4];
- } else if (cmd === 'q') {
- currAbsCoord[0] = (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[3];
- currAbsCoord[1] = (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[4];
- } else if (zCommands.includes(cmd)) {
- // Overlapping in Z should be handled in another rule
- currAbsCoord = [startPoint[0], startPoint[1]];
- _resetStartPoint = true;
- } else {
- throw new Error(`"${cmd}" command not handled`);
- }
-
- if (startPoint === undefined) {
- startPoint = [currAbsCoord[0], currAbsCoord[1]];
- } else if (_resetStartPoint) {
- startPoint = undefined;
- _resetStartPoint = false;
+ if (upperCurveCommands.includes(command)) {
+ const [x2Coord, y2Coord, xCoord, yCoord] = rest;
+ // Absolute shorthand curve (S) having the same coordinate as the previous segment and a control point equal to the ending point
+ if (
+ upperShorthandCurveCommand === command &&
+ x1Coord === xPrevCoord &&
+ y1Coord === yPrevCoord &&
+ x1Coord === x2Coord &&
+ y1Coord === y2Coord
+ ) {
+ return true;
}
-
- _nextInStraightLine = straightLineCommands.includes(nextCmd);
- let _exitingStraightLine = (_inStraightLine && !_nextInStraightLine);
- _inStraightLine = straightLineCommands.includes(cmd);
-
- if (_inStraightLine) {
- currLine.push([currAbsCoord[0], currAbsCoord[1]]);
- } else {
- if (_exitingStraightLine) {
- if (straightLineCommands.includes(cmd)) {
- currLine.push([currAbsCoord[0], currAbsCoord[1]]);
- }
- // Get collinear coordinates
- for (let p = 1; p < currLine.length - 1; p++) {
- let _collinearCoord = collinear(currLine[p - 1][0],
- currLine[p - 1][1],
- currLine[p][0],
- currLine[p][1],
- currLine[p + 1][0],
- currLine[p + 1][1]);
- if (_collinearCoord) {
- collinearSegments.push(
- segments[s - currLine.length + p + 1]
- );
- }
- }
- }
- currLine = [];
+ // Absolute bézier curve (C) having the same coordinate as the previous segment and last control point equal to the ending point
+ if (
+ upperCurveCommand === command &&
+ x1Coord === xPrevCoord &&
+ y1Coord === yPrevCoord &&
+ x2Coord === xCoord &&
+ y2Coord === yCoord
+ ) {
+ return true;
}
}
- return collinearSegments;
+ return (
+ // Absolute horizontal direction (H) having the same x coordinate as the previous segment
+ (upperHorDirectionCommand === command &&
+ x1Coord === xPrevCoord) ||
+ // Absolute vertical direction (V) having the same y coordinate as the previous segment
+ (upperVerDirectionCommand === command &&
+ x1Coord === yPrevCoord) ||
+ // Absolute movement (M or L) having the same coordinate as the previous segment
+ (upperMovementCommands.includes(command) &&
+ x1Coord === xPrevCoord &&
+ y1Coord === yPrevCoord)
+ );
}
-
- const collinearSegments = getCollinearSegments(iconPath),
- pathDIndex = getPathDIndex($.html());
- collinearSegments.forEach((segment) => {
- let errorMsg = `Collinear segment "${iconPath.substring(segment.start, segment.end)}" found`
- if (segment.chained) {
- let readableChain = iconPath.substring(segment.chainStart, segment.chainEnd);
- if (readableChain.length > 20) {
- readableChain = `${readableChain.substring(0, 20)}...`
- }
- errorMsg += ` in chain "${readableChain}"`;
+ }
+ };
+
+ const svgFileContent = $.html();
+
+ segments.forEach((segment, index) => {
+ if (isInvalidSegment(segment.params, index)) {
+ const [command, x1, y1, ...rest] = segment.params;
+
+ let errorMsg = `Innefective segment "${iconPath.substring(
+ segment.start,
+ segment.end,
+ )}" found`,
+ resolutionTip = 'should be removed';
+
+ if (curveCommands.includes(command)) {
+ const [x2, y2, x, y] = rest;
+
+ if (
+ command === lowerShorthandCurveCommand &&
+ (x2 !== 0 || y2 !== 0)
+ ) {
+ resolutionTip = `should be "l${removeLeadingZeros(
+ x2,
+ )} ${removeLeadingZeros(y2)}" or removed`;
}
- errorMsg += ` at index ${segment.start + pathDIndex} (should be removed)`;
- reporter.error(errorMsg);
- });
-
- if (collinearSegments.length) {
- if (updateIgnoreFile) {
- ignoreIcon(reporter.name, iconPath, $);
+ if (command === upperShorthandCurveCommand) {
+ resolutionTip = `should be "L${removeLeadingZeros(
+ x2,
+ )} ${removeLeadingZeros(y2)}" or removed`;
+ }
+ if (command === lowerCurveCommand && (x !== 0 || y !== 0)) {
+ resolutionTip = `should be "l${removeLeadingZeros(
+ x,
+ )} ${removeLeadingZeros(y)}" or removed`;
+ }
+ if (command === upperCurveCommand) {
+ resolutionTip = `should be "L${removeLeadingZeros(
+ x,
+ )} ${removeLeadingZeros(y)}" or removed`;
}
}
- },
- function(reporter, $, ast) {
- reporter.name = "extraneous";
- if (!svgRegexp.test(ast.source)) {
- reporter.error("Unexpected character(s), most likely extraneous whitespace, detected in SVG markup");
+ if (segment.chained) {
+ let readableChain = iconPath.substring(
+ segment.chainStart,
+ segment.chainEnd,
+ );
+ if (readableChain.length > 20) {
+ readableChain = `${chain.substring(0, 20)}...`;
+ }
+ errorMsg += ` in chain "${readableChain}"`;
}
- },
- function(reporter, $, ast) {
- reporter.name = "negative-zeros";
+ errorMsg += ` at index ${
+ segment.start + getPathDIndex(svgFileContent)
+ }`;
- const iconPath = $.find("path").attr("d");
- if (!updateIgnoreFile && isIgnored(reporter.name, iconPath)) {
- return;
- }
+ reporter.error(`${errorMsg} (${resolutionTip})`);
- // Find negative zeros inside path
- const negativeZeroMatches = Array.from(iconPath.matchAll(negativeZerosRegexp));
- if (negativeZeroMatches.length) {
- // Calculate the index for each match in the file
- const svgFileContent = $.html();
- const pathDIndex = getPathDIndex(svgFileContent);
-
- negativeZeroMatches.forEach((match) => {
- const negativeZeroFileIndex = match.index + pathDIndex;
- const previousChar = svgFileContent[negativeZeroFileIndex - 1];
- const replacement = "0123456789".includes(previousChar) ? " 0" : "0";
- reporter.error(`Found "-0" at index ${negativeZeroFileIndex} (should be "${replacement}")`);
- })
+ if (updateIgnoreFile) {
+ ignoreIcon(reporter.name, iconPath, $);
}
- },
- function(reporter, $, ast) {
- reporter.name = "icon-centered";
-
- const iconPath = $.find("path").attr("d");
- if (!updateIgnoreFile && isIgnored(reporter.name, iconPath)) {
- return;
+ }
+ });
+ },
+ (reporter, $, ast) => {
+ reporter.name = 'collinear-segments';
+
+ const iconPath = $.find('path').attr('d');
+ if (!updateIgnoreFile && isIgnored(reporter.name, iconPath)) {
+ return;
+ }
+
+ /**
+ * Extracts collinear coordinates from SVG path straight lines
+ * (does not extracts collinear coordinates from curves).
+ **/
+ const getCollinearSegments = (iconPath) => {
+ const segments = parsePath(iconPath),
+ collinearSegments = [],
+ straightLineCommands = 'HhVvLlMm',
+ zCommands = 'Zz';
+
+ let currLine = [],
+ currAbsCoord = [undefined, undefined],
+ startPoint,
+ _inStraightLine = false,
+ _nextInStraightLine = false,
+ _resetStartPoint = false;
+
+ for (let s = 0; s < segments.length; s++) {
+ let seg = segments[s].params,
+ cmd = seg[0],
+ nextCmd = s + 1 < segments.length ? segments[s + 1][0] : null;
+
+ if (cmd === 'L') {
+ currAbsCoord[0] = seg[1];
+ currAbsCoord[1] = seg[2];
+ } else if (cmd === 'l') {
+ currAbsCoord[0] =
+ (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[1];
+ currAbsCoord[1] =
+ (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[2];
+ } else if (cmd === 'm') {
+ currAbsCoord[0] =
+ (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[1];
+ currAbsCoord[1] =
+ (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[2];
+ startPoint = undefined;
+ } else if (cmd === 'M') {
+ currAbsCoord[0] = seg[1];
+ currAbsCoord[1] = seg[2];
+ startPoint = undefined;
+ } else if (cmd === 'H') {
+ currAbsCoord[0] = seg[1];
+ } else if (cmd === 'h') {
+ currAbsCoord[0] =
+ (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[1];
+ } else if (cmd === 'V') {
+ currAbsCoord[1] = seg[1];
+ } else if (cmd === 'v') {
+ currAbsCoord[1] =
+ (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[1];
+ } else if (cmd === 'C') {
+ currAbsCoord[0] = seg[5];
+ currAbsCoord[1] = seg[6];
+ } else if (cmd === 'a') {
+ currAbsCoord[0] =
+ (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[6];
+ currAbsCoord[1] =
+ (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[7];
+ } else if (cmd === 'A') {
+ currAbsCoord[0] = seg[6];
+ currAbsCoord[1] = seg[7];
+ } else if (cmd === 's') {
+ currAbsCoord[0] =
+ (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[1];
+ currAbsCoord[1] =
+ (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[2];
+ } else if (cmd === 'S') {
+ currAbsCoord[0] = seg[1];
+ currAbsCoord[1] = seg[2];
+ } else if (cmd === 't') {
+ currAbsCoord[0] =
+ (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[1];
+ currAbsCoord[1] =
+ (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[2];
+ } else if (cmd === 'T') {
+ currAbsCoord[0] = seg[1];
+ currAbsCoord[1] = seg[2];
+ } else if (cmd === 'c') {
+ currAbsCoord[0] =
+ (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[5];
+ currAbsCoord[1] =
+ (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[6];
+ } else if (cmd === 'Q') {
+ currAbsCoord[0] = seg[3];
+ currAbsCoord[1] = seg[4];
+ } else if (cmd === 'q') {
+ currAbsCoord[0] =
+ (!currAbsCoord[0] ? 0 : currAbsCoord[0]) + seg[3];
+ currAbsCoord[1] =
+ (!currAbsCoord[1] ? 0 : currAbsCoord[1]) + seg[4];
+ } else if (zCommands.includes(cmd)) {
+ // Overlapping in Z should be handled in another rule
+ currAbsCoord = [startPoint[0], startPoint[1]];
+ _resetStartPoint = true;
+ } else {
+ throw new Error(`"${cmd}" command not handled`);
}
- const [minX, minY, maxX, maxY] = svgPathBbox(iconPath);
- const targetCenter = iconSize / 2;
- const centerX = +((minX + maxX) / 2).toFixed(iconFloatPrecision);
- const devianceX = centerX - targetCenter;
- const centerY = +((minY + maxY) / 2).toFixed(iconFloatPrecision);
- const devianceY = centerY - targetCenter;
-
- if (
- Math.abs(devianceX) > iconTolerance ||
- Math.abs(devianceY) > iconTolerance
- ) {
- reporter.error(` must be centered at (${targetCenter}, ${targetCenter}); the center is currently (${centerX}, ${centerY})`);
- if (updateIgnoreFile) {
- ignoreIcon(reporter.name, iconPath, $);
- }
+ if (startPoint === undefined) {
+ startPoint = [currAbsCoord[0], currAbsCoord[1]];
+ } else if (_resetStartPoint) {
+ startPoint = undefined;
+ _resetStartPoint = false;
}
- },
- function(reporter, $, ast) {
- reporter.name = "path-format";
-
- const iconPath = $.find("path").attr("d");
- const validPathFormatRegex = /^[Mm][MmZzLlHhVvCcSsQqTtAaEe0-9-,.\s]+$/;
- if (!validPathFormatRegex.test(iconPath)) {
- let errorMsg = "Invalid path format", reason;
+ _nextInStraightLine = straightLineCommands.includes(nextCmd);
+ let _exitingStraightLine = _inStraightLine && !_nextInStraightLine;
+ _inStraightLine = straightLineCommands.includes(cmd);
- if (!(/^[Mm]/.test(iconPath))) {
- // doesn't start with moveto
- reason = `should start with \"moveto\" command (\"M\" or \"m\"), but starts with \"${iconPath[0]}\"`;
- reporter.error(`${errorMsg}: ${reason}`);
- }
-
- const validPathCharacters = "MmZzLlHhVvCcSsQqTtAaEe0123456789-,. ",
- invalidCharactersMsgs = [],
- pathDIndex = getPathDIndex($.html());
-
- for (let [i, char] of Object.entries(iconPath)) {
- if (validPathCharacters.indexOf(char) === -1) {
- invalidCharactersMsgs.push(`"${char}" at index ${pathDIndex + parseInt(i)}`);
+ if (_inStraightLine) {
+ currLine.push([currAbsCoord[0], currAbsCoord[1]]);
+ } else {
+ if (_exitingStraightLine) {
+ if (straightLineCommands.includes(cmd)) {
+ currLine.push([currAbsCoord[0], currAbsCoord[1]]);
+ }
+ // Get collinear coordinates
+ for (let p = 1; p < currLine.length - 1; p++) {
+ let _collinearCoord = collinear(
+ currLine[p - 1][0],
+ currLine[p - 1][1],
+ currLine[p][0],
+ currLine[p][1],
+ currLine[p + 1][0],
+ currLine[p + 1][1],
+ );
+ if (_collinearCoord) {
+ collinearSegments.push(
+ segments[s - currLine.length + p + 1],
+ );
+ }
}
}
+ currLine = [];
+ }
+ }
- // contains invalid characters
- if (invalidCharactersMsgs.length > 0) {
- reason = `unexpected character${invalidCharactersMsgs.length > 1 ? 's' : ''} found`;
- reason += ` (${invalidCharactersMsgs.join(", ")})`;
- reporter.error(`${errorMsg}: ${reason}`);
- }
+ return collinearSegments;
+ };
+
+ const collinearSegments = getCollinearSegments(iconPath),
+ pathDIndex = getPathDIndex($.html());
+ collinearSegments.forEach((segment) => {
+ let errorMsg = `Collinear segment "${iconPath.substring(
+ segment.start,
+ segment.end,
+ )}" found`;
+ if (segment.chained) {
+ let readableChain = iconPath.substring(
+ segment.chainStart,
+ segment.chainEnd,
+ );
+ if (readableChain.length > 20) {
+ readableChain = `${readableChain.substring(0, 20)}...`;
}
- },
- function(reporter, $, ast) {
- reporter.name = 'svg-format';
-
- // Don't allow explicit '' closing tag
- if (ast.source.includes('')) {
- const reason = `found a closing "path" tag at index ${ast.source.indexOf('')}.`
- + ' The path should be self-closing, use \'/>\' instead of \'>\'.';
- reporter.error(`Invalid SVG content format: ${reason}`);
+ errorMsg += ` in chain "${readableChain}"`;
+ }
+ errorMsg += ` at index ${
+ segment.start + pathDIndex
+ } (should be removed)`;
+ reporter.error(errorMsg);
+ });
+
+ if (collinearSegments.length) {
+ if (updateIgnoreFile) {
+ ignoreIcon(reporter.name, iconPath, $);
+ }
+ }
+ },
+ (reporter, $, ast) => {
+ reporter.name = 'extraneous';
+
+ if (!svgRegexp.test(ast.source)) {
+ reporter.error(
+ 'Unexpected character(s), most likely extraneous whitespace, detected in SVG markup',
+ );
+ }
+ },
+ (reporter, $, ast) => {
+ reporter.name = 'negative-zeros';
+
+ const iconPath = $.find('path').attr('d');
+ if (!updateIgnoreFile && isIgnored(reporter.name, iconPath)) {
+ return;
+ }
+
+ // Find negative zeros inside path
+ const negativeZeroMatches = Array.from(
+ iconPath.matchAll(negativeZerosRegexp),
+ );
+ if (negativeZeroMatches.length) {
+ // Calculate the index for each match in the file
+ const svgFileContent = $.html();
+ const pathDIndex = getPathDIndex(svgFileContent);
+
+ negativeZeroMatches.forEach((match) => {
+ const negativeZeroFileIndex = match.index + pathDIndex;
+ const previousChar = svgFileContent[negativeZeroFileIndex - 1];
+ const replacement = '0123456789'.includes(previousChar)
+ ? ' 0'
+ : '0';
+ reporter.error(
+ `Found "-0" at index ${negativeZeroFileIndex} (should be "${replacement}")`,
+ );
+ });
+ }
+ },
+ (reporter, $, ast) => {
+ reporter.name = 'icon-centered';
+
+ const iconPath = $.find('path').attr('d');
+ if (!updateIgnoreFile && isIgnored(reporter.name, iconPath)) {
+ return;
+ }
+
+ const [minX, minY, maxX, maxY] = svgPathBbox(iconPath);
+ const targetCenter = iconSize / 2;
+ const centerX = +((minX + maxX) / 2).toFixed(iconFloatPrecision);
+ const devianceX = centerX - targetCenter;
+ const centerY = +((minY + maxY) / 2).toFixed(iconFloatPrecision);
+ const devianceY = centerY - targetCenter;
+
+ if (
+ Math.abs(devianceX) > iconTolerance ||
+ Math.abs(devianceY) > iconTolerance
+ ) {
+ reporter.error(
+ ` must be centered at (${targetCenter}, ${targetCenter}); the center is currently (${centerX}, ${centerY})`,
+ );
+ if (updateIgnoreFile) {
+ ignoreIcon(reporter.name, iconPath, $);
+ }
+ }
+ },
+ (reporter, $, ast) => {
+ reporter.name = 'path-format';
+
+ const iconPath = $.find('path').attr('d');
+
+ const validPathFormatRegex = /^[Mm][MmZzLlHhVvCcSsQqTtAaEe0-9-,.\s]+$/;
+ if (!validPathFormatRegex.test(iconPath)) {
+ let errorMsg = 'Invalid path format',
+ reason;
+
+ if (!/^[Mm]/.test(iconPath)) {
+ // doesn't start with moveto
+ reason = `should start with \"moveto\" command (\"M\" or \"m\"), but starts with \"${iconPath[0]}\"`;
+ reporter.error(`${errorMsg}: ${reason}`);
+ }
+
+ const validPathCharacters = 'MmZzLlHhVvCcSsQqTtAaEe0123456789-,. ',
+ invalidCharactersMsgs = [],
+ pathDIndex = getPathDIndex($.html());
+
+ for (let [i, char] of Object.entries(iconPath)) {
+ if (validPathCharacters.indexOf(char) === -1) {
+ invalidCharactersMsgs.push(
+ `"${char}" at index ${pathDIndex + parseInt(i)}`,
+ );
}
}
- ]
- }
+
+ // contains invalid characters
+ if (invalidCharactersMsgs.length > 0) {
+ reason = `unexpected character${
+ invalidCharactersMsgs.length > 1 ? 's' : ''
+ } found`;
+ reason += ` (${invalidCharactersMsgs.join(', ')})`;
+ reporter.error(`${errorMsg}: ${reason}`);
+ }
+ }
+ },
+ (reporter, $, ast) => {
+ reporter.name = 'svg-format';
+
+ // Don't allow explicit '' closing tag
+ if (ast.source.includes('')) {
+ const reason =
+ `found a closing "path" tag at index ${ast.source.indexOf(
+ '',
+ )}.` +
+ " The path should be self-closing, use '/>' instead of '>'.";
+ reporter.error(`Invalid SVG content format: ${reason}`);
+ }
+ },
+ ],
+ },
};
diff --git a/jest.config.js b/jest.config.js
index 0699d7e7f119..239cf0584b2f 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -1,3 +1,3 @@
module.exports = {
- cacheDirectory: "./.cache/jest",
+ cacheDirectory: './.cache/jest',
};
diff --git a/package.json b/package.json
index 162555921177..ddfde18db30d 100644
--- a/package.json
+++ b/package.json
@@ -19,11 +19,14 @@
"license": "CC0-1.0",
"devDependencies": {
"editorconfig-checker": "4.0.2",
+ "husky": "7.0.2",
+ "is-ci": "3.0.0",
"jest": "27.2.5",
"jest-diff": "27.2.5",
"jsonschema": "1.4.0",
"named-html-entities-json": "0.1.0",
"npm-run-all": "4.1.5",
+ "prettier": "2.4.1",
"rimraf": "3.0.2",
"svg-path-bbox": "1.0.1",
"svg-path-segments": "1.0.0",
@@ -35,11 +38,14 @@
"scripts": {
"build": "node scripts/build/package.js",
"clean": "rimraf icons/*.js index.js",
- "lint": "run-s our-lint jsonlint svglint wslint",
+ "format": "prettier --write .",
+ "lint": "run-s our-lint jslint jsonlint svglint wslint",
"our-lint": "node scripts/lint/ourlint.js",
+ "jslint": "prettier --check .",
"jsonlint": "node scripts/lint/jsonlint.js",
"svglint": "svglint icons/*.svg --ci",
"wslint": "editorconfig-checker -exclude \\.svg$",
+ "postinstall": "is-ci || husky install",
"prepublishOnly": "npm run build",
"postpublish": "npm run clean",
"test": "jest",
diff --git a/scripts/build/package.js b/scripts/build/package.js
index a55e0e2187df..c92963e786f9 100644
--- a/scripts/build/package.js
+++ b/scripts/build/package.js
@@ -7,36 +7,36 @@
* tree-shakeable
*/
-const fs = require("fs");
-const path = require("path");
-const util = require("util");
-const minify = require("uglify-js").minify;
+const fs = require('fs');
+const path = require('path');
+const util = require('util');
+const { minify } = require('uglify-js');
-const UTF8 = "utf8";
+const UTF8 = 'utf8';
-const rootDir = path.resolve(__dirname, "..", "..");
-const dataFile = path.resolve(rootDir, "_data", "simple-icons.json");
-const indexFile = path.resolve(rootDir, "index.js");
-const iconsDir = path.resolve(rootDir, "icons");
+const rootDir = path.resolve(__dirname, '..', '..');
+const dataFile = path.resolve(rootDir, '_data', 'simple-icons.json');
+const indexFile = path.resolve(rootDir, 'index.js');
+const iconsDir = path.resolve(rootDir, 'icons');
-const templatesDir = path.resolve(__dirname, "templates");
-const indexTemplateFile = path.resolve(templatesDir, "index.js");
-const iconObjectTemplateFile = path.resolve(templatesDir, "icon-object.js");
+const templatesDir = path.resolve(__dirname, 'templates');
+const indexTemplateFile = path.resolve(templatesDir, 'index.js');
+const iconObjectTemplateFile = path.resolve(templatesDir, 'icon-object.js');
const indexTemplate = fs.readFileSync(indexTemplateFile, UTF8);
const iconObjectTemplate = fs.readFileSync(iconObjectTemplateFile, UTF8);
const data = require(dataFile);
-const { getIconSlug, titleToSlug } = require("../utils.js");
+const { getIconSlug } = require('../utils.js');
// Local helper functions
-function escape(value) {
+const escape = (value) => {
return value.replace(/(? {
return `'${icon.slug}':${iconToObject(icon)}`;
-}
-function licenseToObject(license) {
+};
+const licenseToObject = (license) => {
if (license === undefined) {
return;
}
@@ -45,9 +45,10 @@ function licenseToObject(license) {
license.url = `https://spdx.org/licenses/${license.type}`;
}
return license;
-}
-function iconToObject(icon) {
- return util.format(iconObjectTemplate,
+};
+const iconToObject = (icon) => {
+ return util.format(
+ iconObjectTemplate,
escape(icon.title),
escape(icon.slug),
escape(icon.svg),
@@ -56,8 +57,8 @@ function iconToObject(icon) {
icon.guidelines ? `'${escape(icon.guidelines)}'` : undefined,
licenseToObject(icon.license),
);
-}
-function minifyAndWrite(filepath, rawJavaScript) {
+};
+const minifyAndWrite = (filepath, rawJavaScript) => {
const { error, code } = minify(rawJavaScript);
if (error) {
console.error(error);
@@ -65,11 +66,11 @@ function minifyAndWrite(filepath, rawJavaScript) {
} else {
fs.writeFileSync(filepath, code);
}
-}
+};
// 'main'
const icons = [];
-data.icons.forEach(icon => {
+data.icons.forEach((icon) => {
const filename = getIconSlug(icon);
const svgFilepath = path.resolve(iconsDir, `${filename}.svg`);
icon.svg = fs.readFileSync(svgFilepath, UTF8).replace(/\r?\n/, '');
@@ -82,5 +83,8 @@ data.icons.forEach(icon => {
});
// write our generic index.js
-const rawIndexJs = util.format(indexTemplate, icons.map(iconToKeyValue).join(','));
+const rawIndexJs = util.format(
+ indexTemplate,
+ icons.map(iconToKeyValue).join(','),
+);
minifyAndWrite(indexFile, rawIndexJs);
diff --git a/scripts/get-filename.js b/scripts/get-filename.js
index 610eb5c80e19..088a14891a70 100644
--- a/scripts/get-filename.js
+++ b/scripts/get-filename.js
@@ -5,13 +5,14 @@
* icon SVG filename to standard output.
*/
-const { titleToSlug } = require("./utils.js");
+const { titleToSlug } = require('./utils.js');
if (process.argv.length < 3) {
- console.error("Provide a brand name as argument");
+ console.error('Provide a brand name as argument');
process.exit(1);
} else {
- const brandName = process.argv.slice(3)
+ const brandName = process.argv
+ .slice(3)
.reduce((acc, arg) => `${acc} ${arg}`, process.argv[2]);
const filename = titleToSlug(brandName);
diff --git a/scripts/lint/jsonlint.js b/scripts/lint/jsonlint.js
index b89e97de93d8..059a28312464 100644
--- a/scripts/lint/jsonlint.js
+++ b/scripts/lint/jsonlint.js
@@ -1,9 +1,15 @@
-const path = require("path");
-const Validator = require("jsonschema").Validator;
+#!/usr/bin/env node
+/**
+ * @fileoverview
+ * CLI tool to run jsonschema on the simple-icons.json data file.
+ */
-const rootDir = path.resolve(__dirname, "..", "..");
-const schemaFile = path.resolve(rootDir, ".jsonschema.json");
-const dataFile = path.resolve(rootDir, "_data", "simple-icons.json");
+const path = require('path');
+const { Validator } = require('jsonschema');
+
+const rootDir = path.resolve(__dirname, '..', '..');
+const schemaFile = path.resolve(rootDir, '.jsonschema.json');
+const dataFile = path.resolve(rootDir, '_data', 'simple-icons.json');
const schema = require(schemaFile);
const data = require(dataFile);
diff --git a/scripts/lint/ourlint.js b/scripts/lint/ourlint.js
index d275a5d7fdd0..5a79dd97b69e 100644
--- a/scripts/lint/ourlint.js
+++ b/scripts/lint/ourlint.js
@@ -5,15 +5,15 @@
* linters (e.g. jsonlint/svglint).
*/
-const fs = require("fs");
-const path = require("path");
+const fs = require('fs');
+const path = require('path');
-const { diffLinesUnified } = require("jest-diff");
+const { diffLinesUnified } = require('jest-diff');
-const UTF8 = "utf8";
+const UTF8 = 'utf8';
-const rootDir = path.resolve(__dirname, "..", "..");
-const dataFile = path.resolve(rootDir, "_data", "simple-icons.json");
+const rootDir = path.resolve(__dirname, '..', '..');
+const dataFile = path.resolve(rootDir, '_data', 'simple-icons.json');
const data = require(dataFile);
/**
@@ -22,7 +22,7 @@ const data = require(dataFile);
*/
const TESTS = {
/* Tests whether our icons are in alphabetical order */
- alphabetical: function() {
+ alphabetical: () => {
const collector = (invalidEntries, icon, index, array) => {
if (index > 0) {
const prev = array[index - 1];
@@ -39,7 +39,7 @@ const TESTS = {
}
return invalidEntries;
};
- const format = icon => {
+ const format = (icon) => {
if (icon.slug) {
return `${icon.title} (${icon.slug})`;
}
@@ -49,35 +49,35 @@ const TESTS = {
const invalids = data.icons.reduce(collector, []);
if (invalids.length) {
return `Some icons aren't in alphabetical order:
- ${invalids.map(icon => format(icon)).join(", ")}`;
+ ${invalids.map((icon) => format(icon)).join(', ')}`;
}
},
/* Check the formatting of the data file */
- prettified: function() {
+ prettified: () => {
const dataString = fs.readFileSync(dataFile, UTF8).replace(/\r\n/g, '\n');
- const dataPretty = `${JSON.stringify(data, null, " ")}\n`;
+ const dataPretty = `${JSON.stringify(data, null, ' ')}\n`;
if (dataString !== dataPretty) {
const dataDiff = diffLinesUnified(
- dataString.split("\n"),
- dataPretty.split("\n"),
+ dataString.split('\n'),
+ dataPretty.split('\n'),
{
expand: false,
- omitAnnotationLines: true
+ omitAnnotationLines: true,
},
);
return `Data file is formatted incorrectly:\n\n${dataDiff}`;
}
- }
+ },
};
// execute all tests and log all errors
const errors = Object.keys(TESTS)
- .map(k => TESTS[k]())
+ .map((k) => TESTS[k]())
.filter(Boolean);
if (errors.length > 0) {
- errors.forEach(error => console.error(`\u001b[31m${error}\u001b[0m`));
+ errors.forEach((error) => console.error(`\u001b[31m${error}\u001b[0m`));
process.exit(1);
}
diff --git a/scripts/release/bump-version.js b/scripts/release/bump-version.js
index 9648a833ad15..7755b75d8653 100644
--- a/scripts/release/bump-version.js
+++ b/scripts/release/bump-version.js
@@ -4,34 +4,34 @@
* Updates the version of this package to the CLI specified version.
*/
-const fs = require("fs");
-const path = require("path");
+const fs = require('fs');
+const path = require('path');
-const rootDir = path.resolve(__dirname, "..", "..");
-const packageJsonFile = path.resolve(rootDir, "package.json");
+const rootDir = path.resolve(__dirname, '..', '..');
+const packageJsonFile = path.resolve(rootDir, 'package.json');
-function readManifest(file) {
+const readManifest = (file) => {
const manifestRaw = fs.readFileSync(file).toString();
const manifestJson = JSON.parse(manifestRaw);
return manifestJson;
-}
+};
-function writeManifest(file, json) {
- const manifestRaw = JSON.stringify(json, null, 2) + "\n";
+const writeManifest = (file, json) => {
+ const manifestRaw = JSON.stringify(json, null, 2) + '\n';
fs.writeFileSync(file, manifestRaw);
-}
+};
-function main(newVersion) {
+const main = (newVersion) => {
try {
const manifest = readManifest(packageJsonFile);
- manifest.version = newVersion
+ manifest.version = newVersion;
writeManifest(packageJsonFile, manifest);
} catch (error) {
console.error(`Failed to bump package version to ${newVersion}:`, error);
process.exit(1);
}
-}
+};
main(process.argv[2]);
diff --git a/scripts/release/update-cdn-urls.js b/scripts/release/update-cdn-urls.js
index adf967631e85..a37c008726d2 100644
--- a/scripts/release/update-cdn-urls.js
+++ b/scripts/release/update-cdn-urls.js
@@ -5,24 +5,24 @@
* NPM package manifest. Does nothing if the README.md is already up-to-date.
*/
-const fs = require("fs");
-const path = require("path");
+const fs = require('fs');
+const path = require('path');
-const rootDir = path.resolve(__dirname, "..", "..");
-const packageJsonFile = path.resolve(rootDir, "package.json");
-const readmeFile = path.resolve(rootDir, "README.md");
+const rootDir = path.resolve(__dirname, '..', '..');
+const packageJsonFile = path.resolve(rootDir, 'package.json');
+const readmeFile = path.resolve(rootDir, 'README.md');
-function getMajorVersion(semVerVersion) {
+const getMajorVersion = (semVerVersion) => {
const majorVersionAsString = semVerVersion.split('.')[0];
return parseInt(majorVersionAsString);
-}
+};
-function getManifest() {
+const getManifest = () => {
const manifestRaw = fs.readFileSync(packageJsonFile).toString();
return JSON.parse(manifestRaw);
-}
+};
-function updateVersionInReadmeIfNecessary(majorVersion) {
+const updateVersionInReadmeIfNecessary = (majorVersion) => {
let content = fs.readFileSync(readmeFile).toString();
content = content.replace(
@@ -31,17 +31,17 @@ function updateVersionInReadmeIfNecessary(majorVersion) {
);
fs.writeFileSync(readmeFile, content);
-}
+};
-function main() {
+const main = () => {
try {
const manifest = getManifest();
const majorVersion = getMajorVersion(manifest.version);
updateVersionInReadmeIfNecessary(majorVersion);
} catch (error) {
- console.error("Failed to update CDN version number:", error);
+ console.error('Failed to update CDN version number:', error);
process.exit(1);
}
-}
+};
main();
diff --git a/scripts/release/update-slugs-table.js b/scripts/release/update-slugs-table.js
index 69657e8b2538..84bb9132de2f 100644
--- a/scripts/release/update-slugs-table.js
+++ b/scripts/release/update-slugs-table.js
@@ -4,15 +4,15 @@
* Generates a MarkDown file that lists every brand name and their slug.
*/
-const fs = require("fs");
-const path = require("path");
+const fs = require('fs');
+const path = require('path');
-const rootDir = path.resolve(__dirname, "..", "..");
-const dataFile = path.resolve(rootDir, "_data", "simple-icons.json");
-const slugsFile = path.resolve(rootDir, "slugs.md");
+const rootDir = path.resolve(__dirname, '..', '..');
+const dataFile = path.resolve(rootDir, '_data', 'simple-icons.json');
+const slugsFile = path.resolve(rootDir, 'slugs.md');
const data = require(dataFile);
-const { getIconSlug } = require("../utils.js");
+const { getIconSlug } = require('../utils.js');
let content = `
**Issue:**
-**Alexa rank:**
-
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6d4dc3d40a8f..07b36a314667 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -43,7 +43,7 @@ We welcome icon requests. Before you submit a new issue please make sure the ico
* Has not already been requested. If you find an existing issue or pull request for the brand you're looking for then please add a reaction or comment to show your support.
* Is of a _popular_ brand:
- - For websites, the [Alexa rank](https://www.alexa.com/siteinfo) should be less than 500k.
+ - For websites, the [Similarweb rank](https://www.similarweb.com) should be less than 500k.
- Note that for brands that have already been added the threshold for continued inclusion rises to 750k.
- For GitHub projects, the amount of "stars" should be above 5k.
- For anything else, popularity will be judged on a case-by-case basis.
From 2d00eb59d3d953a2bdd2d82dca0c594f26d0736d Mon Sep 17 00:00:00 2001
From: elliotwutingfeng
Date: Wed, 23 Feb 2022 06:30:22 +0800
Subject: [PATCH 409/626] Add Ray icon (#7167)
* Add Ray icon
* Reorder svg attributes
* Remove extra attributes
* svgo run
---
_data/simple-icons.json | 5 +++++
icons/ray.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/ray.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 77bd0fe3525a..92ac7928b2a1 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -8308,6 +8308,11 @@
"source": "https://www.raspberrypi.org/trademark-rules",
"guidelines": "https://www.raspberrypi.org/trademark-rules"
},
+ {
+ "title": "Ray",
+ "hex": "028CF0",
+ "source": "https://github.com/ray-project/ray/blob/6522935291caa120e83697c6c9b3a450617c9283/dashboard/client/src/logo.svg"
+ },
{
"title": "Razer",
"hex": "00FF00",
diff --git a/icons/ray.svg b/icons/ray.svg
new file mode 100644
index 000000000000..048390834ca8
--- /dev/null
+++ b/icons/ray.svg
@@ -0,0 +1 @@
+Ray
\ No newline at end of file
From d059a097e61cdfd2c1617df9fd50d6cdb2f177fe Mon Sep 17 00:00:00 2001
From: elliotwutingfeng
Date: Sat, 26 Feb 2022 22:46:37 +0800
Subject: [PATCH 410/626] Add rocksdb icon (#7174)
Co-authored-by: Sachin Raja
---
_data/simple-icons.json | 8 ++++++++
icons/rocksdb.svg | 1 +
2 files changed, 9 insertions(+)
create mode 100644 icons/rocksdb.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 92ac7928b2a1..04fd9c15fb01 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -8610,6 +8610,14 @@
"source": "https://rocket.chat/press",
"guidelines": "https://docs.rocket.chat/guides/brand-and-visual-guidelines/logo"
},
+ {
+ "title": "RocksDB",
+ "hex": "2A2A2A",
+ "source": "https://github.com/facebook/rocksdb/blob/9ed96703d11a1cf4af0e1c1db0e4a6057a8e5d42/docs/static/logo.svg",
+ "license": {
+ "type": "CC-BY-4.0"
+ }
+ },
{
"title": "Rocky Linux",
"hex": "10B981",
diff --git a/icons/rocksdb.svg b/icons/rocksdb.svg
new file mode 100644
index 000000000000..830b9272e02d
--- /dev/null
+++ b/icons/rocksdb.svg
@@ -0,0 +1 @@
+RocksDB
\ No newline at end of file
From 46b259c7b4f1f45f31ad71c42851a2e82dbdd23b Mon Sep 17 00:00:00 2001
From: elliotwutingfeng
Date: Sat, 26 Feb 2022 22:52:34 +0800
Subject: [PATCH 411/626] Add StackEdit icon (#7176)
---
_data/simple-icons.json | 5 +++++
icons/stackedit.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/stackedit.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 04fd9c15fb01..fcc7c21fa8a8 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -9622,6 +9622,11 @@
"source": "https://www.stackbit.com/branding-guidelines/",
"guidelines": "https://www.stackbit.com/branding-guidelines/"
},
+ {
+ "title": "StackEdit",
+ "hex": "606060",
+ "source": "https://github.com/benweet/stackedit/blob/46383b5b6a54b65b8720d786ed0a0518b9ad652d/src/assets/iconStackedit.svg"
+ },
{
"title": "StackPath",
"hex": "000000",
diff --git a/icons/stackedit.svg b/icons/stackedit.svg
new file mode 100644
index 000000000000..f342c43e1f49
--- /dev/null
+++ b/icons/stackedit.svg
@@ -0,0 +1 @@
+StackEdit
\ No newline at end of file
From a1f29ca7aaa9cc812cc1c11422b8fdccc7637e84 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Sun, 27 Feb 2022 00:19:42 +0000
Subject: [PATCH 412/626] version bump
---
package.json | 2 +-
slugs.md | 5 +++++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/package.json b/package.json
index b56a51a0caf5..7bd22a5ca6cb 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "simple-icons",
- "version": "6.11.0",
+ "version": "6.12.0",
"description": "SVG icons for popular brands https://simpleicons.org",
"homepage": "https://simpleicons.org",
"keywords": [
diff --git a/slugs.md b/slugs.md
index 260a2e663ffd..9aacd7ef8b67 100644
--- a/slugs.md
+++ b/slugs.md
@@ -1561,6 +1561,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Rancher` | `rancher` |
| `Rarible` | `rarible` |
| `Raspberry Pi` | `raspberrypi` |
+| `Ray` | `ray` |
| `Razer` | `razer` |
| `Razorpay` | `razorpay` |
| `React` | `react` |
@@ -1589,6 +1590,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `RenovateBot` | `renovatebot` |
| `Renren` | `renren` |
| `Replit` | `replit` |
+| `Republic of Gamers` | `republicofgamers` |
| `ReScript` | `rescript` |
| `RescueTime` | `rescuetime` |
| `ResearchGate` | `researchgate` |
@@ -1612,6 +1614,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Roblox` | `roblox` |
| `Robot Framework` | `robotframework` |
| `Rocket.Chat` | `rocketdotchat` |
+| `RocksDB` | `rocksdb` |
| `Rocky Linux` | `rockylinux` |
| `Roku` | `roku` |
| `Rolls-Royce` | `rollsroyce` |
@@ -1794,6 +1797,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Stack Exchange` | `stackexchange` |
| `Stack Overflow` | `stackoverflow` |
| `Stackbit` | `stackbit` |
+| `StackEdit` | `stackedit` |
| `StackPath` | `stackpath` |
| `StackShare` | `stackshare` |
| `Stadia` | `stadia` |
@@ -1880,6 +1884,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `TELE5` | `tele5` |
| `Telegram` | `telegram` |
| `Telegraph` | `telegraph` |
+| `Temporal` | `temporal` |
| `Tencent QQ` | `tencentqq` |
| `TensorFlow` | `tensorflow` |
| `Teradata` | `teradata` |
From 40ce380ec93baacea92cd4675a2429220334a584 Mon Sep 17 00:00:00 2001
From: SiJeong_Kim
Date: Tue, 1 Mar 2022 15:15:40 +0900
Subject: [PATCH 413/626] Add YOLO icon (#7040)
* Add YOLO
* Update SVG
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 5 +++++
icons/yolo.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/yolo.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index fcc7c21fa8a8..ccc6bd6674ea 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -11521,6 +11521,11 @@
"hex": "A4286A",
"source": "https://yoast.com/media/logo/"
},
+ {
+ "title": "YOLO",
+ "hex": "00FFFF",
+ "source": "https://pjreddie.com/darknet/yolo/"
+ },
{
"title": "YourTravel.TV",
"hex": "F79025",
diff --git a/icons/yolo.svg b/icons/yolo.svg
new file mode 100644
index 000000000000..b5e9e58d1862
--- /dev/null
+++ b/icons/yolo.svg
@@ -0,0 +1 @@
+YOLO
\ No newline at end of file
From 728d8296e80714dd76c6632e49021694738e52a1 Mon Sep 17 00:00:00 2001
From: Jorge Amado Soria Ramirez
Date: Tue, 1 Mar 2022 00:48:08 -0600
Subject: [PATCH 414/626] Ajv (#7183)
* adding NetBox icon
* adding AJV.js
* removed NetBox from this PR
* removed NetBox from this PR
Co-authored-by: Engin Diri
---
_data/simple-icons.json | 5 +++++
icons/ajv.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/ajv.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index ccc6bd6674ea..b10ccf1f547a 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -356,6 +356,11 @@
"hex": "18BFFF",
"source": "https://airtable.com/press"
},
+ {
+ "title": "AJV",
+ "hex": "23C8D2",
+ "source": "https://ajv.js.org/"
+ },
{
"title": "Alacritty",
"hex": "F46D01",
diff --git a/icons/ajv.svg b/icons/ajv.svg
new file mode 100644
index 000000000000..813bd20c0b18
--- /dev/null
+++ b/icons/ajv.svg
@@ -0,0 +1 @@
+AJV
\ No newline at end of file
From fd3f03fb230160c61c2df427f09cd77cb7da8b1c Mon Sep 17 00:00:00 2001
From: deepmalamittal
Date: Tue, 1 Mar 2022 02:21:32 -0500
Subject: [PATCH 415/626] Konami icon (#7120)
* Added Credly icon
* Added Konami icon
* Update konami.svg
* fixed Konami
* removed style attribute from Konami icon
Co-authored-by: Jorge Amado Soria Ramirez
Co-authored-by: Engin Diri
---
_data/simple-icons.json | 5 +++++
icons/konami.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/konami.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index b10ccf1f547a..25d92130e65a 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -5438,6 +5438,11 @@
"source": "http://newsroom.komoot.com/media_kits/219423/",
"guidelines": "http://newsroom.komoot.com/media_kits/219423/"
},
+ {
+ "title": "Konami",
+ "hex": "B60014",
+ "source": "https://commons.wikimedia.org/wiki/File:Konami_4th_logo_2.svg"
+ },
{
"title": "Kongregate",
"hex": "990000",
diff --git a/icons/konami.svg b/icons/konami.svg
new file mode 100644
index 000000000000..c02efa6843bf
--- /dev/null
+++ b/icons/konami.svg
@@ -0,0 +1 @@
+Konami
\ No newline at end of file
From 334ee5a89fd405c9239962746252975baffe71b2 Mon Sep 17 00:00:00 2001
From: LitoMore
Date: Thu, 3 Mar 2022 21:27:36 +0800
Subject: [PATCH 416/626] Add `data.ai` (#7181)
---
_data/simple-icons.json | 5 +++++
icons/datadotai.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/datadotai.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 25d92130e65a..659d512c09ed 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -2418,6 +2418,11 @@
"hex": "945DD6",
"source": "https://static.iterative.ai/logo/dvc.svg"
},
+ {
+ "title": "data.ai",
+ "hex": "000000",
+ "source": "https://www.data.ai/en/about/press/"
+ },
{
"title": "Databricks",
"hex": "FF3621",
diff --git a/icons/datadotai.svg b/icons/datadotai.svg
new file mode 100644
index 000000000000..05bdf23cfc06
--- /dev/null
+++ b/icons/datadotai.svg
@@ -0,0 +1 @@
+data.ai
From 49436ec007b2b181fb08f332b3e8b07b8b576d5e Mon Sep 17 00:00:00 2001
From: Rcoleman956 <97488950+Rcoleman956@users.noreply.github.com>
Date: Fri, 4 Mar 2022 18:59:59 -0500
Subject: [PATCH 417/626] Add Simplenote icon (#7170)
* Add Simplenote icon
* Fix hex code
Co-authored-by: Engin Diri
---
_data/simple-icons.json | 5 +++++
icons/simplenote.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/simplenote.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 659d512c09ed..da375db5f387 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -9170,6 +9170,11 @@
"type": "CC0-1.0"
}
},
+ {
+ "title": "Simplenote",
+ "hex": "3361CC",
+ "source": "https://en.wikipedia.org/wiki/File:Simplenote_logo.svg"
+ },
{
"title": "Sina Weibo",
"hex": "E6162D",
diff --git a/icons/simplenote.svg b/icons/simplenote.svg
new file mode 100644
index 000000000000..a98988699c3d
--- /dev/null
+++ b/icons/simplenote.svg
@@ -0,0 +1 @@
+Simplenote
\ No newline at end of file
From 95065539e47641e5610f2baf2339d75971ca668e Mon Sep 17 00:00:00 2001
From: Dalpat Rathore <69510006+DalpatRathore@users.noreply.github.com>
Date: Sat, 5 Mar 2022 20:26:12 +0530
Subject: [PATCH 418/626] Fix: CONTRIBUTING.md grammar (#7194)
* Fix: CONTRIBUTING.md grammar
---
CONTRIBUTING.md | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 07b36a314667..e358335f64f1 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -48,16 +48,16 @@ We welcome icon requests. Before you submit a new issue please make sure the ico
- For GitHub projects, the amount of "stars" should be above 5k.
- For anything else, popularity will be judged on a case-by-case basis.
* Doesn't fall into one of the following categories:
- - Illegal service (e.g. piracy, malware, threatening material, spam etc.)
+ - Illegal services (e.g. piracy, malware, threatening material, spam, etc.)
- Governmental agencies, programs, departments
- Allowed: International organizations and NGOs with supranational interests
- Allowed: Space agencies
- Symbols, including flags and banners
- Sport clubs
- - Allowed: Sport organizations
+ - Allowed: Sports organizations
- Yearly releases
- Universities or other educational institutions
- - Any brands representing individuals rather than an organization, company or product. This includes musicians, bands, and social media personalities.
+ - Any brands representing individuals rather than an organization, company, or product. This includes musicians, bands, and social media personalities.
If you are in doubt, feel free to submit it and we'll have a look.
@@ -67,7 +67,7 @@ When submitting a request for a new or updated icon include helpful information
* New Icons: `Request: GitHub Icon`
* Icon Updates: `Update: GitHub Color` or `Update: GitHub Icon`
-* **Issue Body:** Links to official sources for the brand's icon and colors (e.g. media kits, brand guidelines, SVG files etc.)
+* **Issue Body:** Links to official sources for the brand's icon and colors (e.g. media kits, brand guidelines, SVG files, etc.)
If you have an affiliation to the brand you are requesting that allows you to speak on their behalf then please disclose that in your issue as it can help speed up our research process.
@@ -77,7 +77,7 @@ If you have an affiliation to the brand you are requesting that allows you to sp
### 1. Identify Official Logos and Colors
-Most of the icons and brand colors on SimpleIcons have been derived from official sources. Using official sources helps ensure that the icons and colors in SimpleIcons accurately match the brand they represent. Thankfully, this is usually a simple process as organizations often provide brand guides and high quality versions of their logo for download.
+Most of the icons and brand colors on SimpleIcons have been derived from official sources. Using official sources helps ensure that the icons and colors in SimpleIcons accurately match the brand they represent. Thankfully, this is usually a simple process as organizations often provide brand guides and high-quality versions of their logo for download.
Official high quality brand logos and brand colors can usually be found in the following locations:
@@ -92,12 +92,12 @@ Notice that an unofficial source will never supersede an official one, even if i
#### Icon Guidelines
-Working with an SVG version of the logo is best. In the absence of an SVG version, other vector filetypes may work as well (e.g. EPS, AI, PDF). In the absence of vector logos, a vector can be created from a high quality rasterized image, however this is much more labor intensive.
+Working with an SVG version of the logo is best. In the absence of an SVG version, other vector filetypes may work as well (e.g. EPS, AI, PDF). In the absence of vector logos, a vector can be created from a high-quality rasterized image, however, this is much more labor-intensive.
If the icon includes a (registered) trademark icon we follow the guidelines below to decide whether to include the symbol or not:
* If brand guidelines explicitly require including the symbol, it must be included.
-* If the the brand itself includes the symbol with all uses of the logo, even at small sizes, it must be included.
+* If the brand itself includes the symbol with all uses of the logo, even at small sizes, it must be included.
* If the symbol is incorporated into the design of the logo (e.g. [Chupa Chups](https://github.com/simple-icons/simple-icons/blob/develop/icons/chupachups.svg)), it must be included.
* If there is ambiguity about the conditions under which the symbol is required, it must be included if it is a _registered trademark symbol_ (®) but not if is a _trademark symbol_ (™).
* If brand guidelines say it _may_ be removed, usually when the icon is displayed at small sizes, it must not be included.
@@ -129,7 +129,7 @@ Using your preferred tool you should:
1. Remove all colors. The icon should be monochromatic.
1. Export the icon as an SVG.
-Some icons can't be easily converted to a monochromatic version due to colour changes, shadows, or other effects. For such cases the addition of gaps is the recommended approach, with a preferred width of 0.5px. In some situations a different gap may be required, but that will be determined on a per-case basis.
+Some icons can't be easily converted to a monochromatic version due to colour changes, shadows, or other effects. For such cases, the addition of gaps is the recommended approach, with a preferred width of 0.5px. In some situations, a different gap may be required, but that will be determined on a per-case basis.
If you have any problems or questions while creating the SVG, check out [the GitHub Discussions](https://github.com/simple-icons/simple-icons/discussions/categories/help-with-svgs). You may find an answer to your question there or you can ask your question if you did not find an answer.
@@ -152,7 +152,7 @@ All icons in Simple Icons have been optimized with the [SVGO tool](https://githu
* Build: `docker build . -t simple-icons`
* Run: `docker run --rm -v ${PWD}/icons/file-to-optimize.svg:/image.svg simple-icons`
-After optimizing the icon, double-check it against your original version to ensure no visual imperfections have crept in. Also make sure that the dimensions of the path have not been changed so that the icon no longer fits exactly within the canvas. We currently check the dimensions up to a precision of 3 decimal points.
+After optimizing the icon, double-check it against your original version to ensure no visual imperfections have crept in. Also, make sure that the dimensions of the path have not been changed so that the icon no longer fits exactly within the canvas. We currently check the dimensions up to a precision of 3 decimal points.
### 4. Annotate the Icon
@@ -265,7 +265,7 @@ Make sure the icon is added in alphabetical order. If you're in doubt, you can a
Additionally, each icon in the `_data/simple-icons.json` file may be given any of the following optional values:
-* The `slug` must be used to specify the icon's file name in cases where a modifier has been added to it in order to resolve a clash with an exitsing icon's name.
+* The `slug` must be used to specify the icon's file name in cases where a modifier has been added to it in order to resolve a clash with an existing icon's name.
* The `guidelines` may be used to specify the URL of the brand's guidelines/press kit/etc. This is useful if the SVG file was sourced from a different place, still if the SVG file was sourced from the guidelines, the URL should be duplicated here.
* The `license` may be used to specify the license under which the icon is available. This is an object with a `type` and `url`. The `type` should be an [SPDX License ID](https://spdx.org/licenses/) or `"custom"`, the `url` is optional unless the `type` is `"custom"`.
@@ -295,7 +295,7 @@ If the SVG is sourced from:
- **Company website**: If the SVG is found on the company website (but there is no branding page) the source URL should link to a common page, such as the home page or about page, that includes the source image and not the image file itself.
- **GitHub**: For an SVG from a GitHub (GitLab, BitBucket, etc.) repository the source URL should link to the file that was used as source material. If the color comes from another file in the repository the URL should link to the repository itself.
- In any case the commit hash should be part of the URL. On GitHub, you can get the correct URL by pressing y on the GitHub page you want to link to. You can get help at the [getting permanent links to files page](https://help.github.com/en/github/managing-files-in-a-repository/getting-permanent-links-to-files).
+ In any case, the commit hash should be part of the URL. On GitHub, you can get the correct URL by pressing y on the GitHub page you want to link to. You can get help at the [getting permanent links to files page](https://help.github.com/en/github/managing-files-in-a-repository/getting-permanent-links-to-files).
- **Wikipedia**: For an SVG from Wikipedia/Wikimedia the source URL should link to the logo file's page on the relevant site, and not the brand's Wikipedia pages. For example, [this is the link for AmericanExpress](https://commons.wikimedia.org/wiki/File:American_Express_logo.svg).
From 3886e501432afa736b5adb22dd80197d45f0fc39 Mon Sep 17 00:00:00 2001
From: deepmalamittal
Date: Sat, 5 Mar 2022 15:56:31 -0500
Subject: [PATCH 419/626] Openzfs icon (#7052)
* Added Credly icon
* Added OpenZFS icon
* Update openzfs.svg
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 5 +++++
icons/openzfs.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/openzfs.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index da375db5f387..8331fa4f0d5b 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -7178,6 +7178,11 @@
"source": "https://openwrt.org/docs/guide-graphic-designer/openwrt-logo",
"guidelines": "https://openwrt.org/docs/guide-graphic-designer/openwrt-logo"
},
+ {
+ "title": "OpenZFS",
+ "hex": "2A667F",
+ "source": "https://commons.wikimedia.org/wiki/File:OpenZFS_logo.svg"
+ },
{
"title": "Opera",
"hex": "FF1B2D",
diff --git a/icons/openzfs.svg b/icons/openzfs.svg
new file mode 100644
index 000000000000..f690a63de184
--- /dev/null
+++ b/icons/openzfs.svg
@@ -0,0 +1 @@
+OpenZFS
From 7d5d8236bc0b6cac6a51f4e515b555563b94267a Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Sun, 6 Mar 2022 00:18:30 +0000
Subject: [PATCH 420/626] version bump
---
package.json | 2 +-
slugs.md | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 7bd22a5ca6cb..08fb33aef400 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "simple-icons",
- "version": "6.12.0",
+ "version": "6.13.0",
"description": "SVG icons for popular brands https://simpleicons.org",
"homepage": "https://simpleicons.org",
"keywords": [
diff --git a/slugs.md b/slugs.md
index 9aacd7ef8b67..9cfc0a02c431 100644
--- a/slugs.md
+++ b/slugs.md
@@ -76,6 +76,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `AirPlay Audio` | `airplayaudio` |
| `AirPlay Video` | `airplayvideo` |
| `Airtable` | `airtable` |
+| `AJV` | `ajv` |
| `Alacritty` | `alacritty` |
| `Albert Heijn` | `albertheijn` |
| `Aldi Nord` | `aldinord` |
@@ -477,6 +478,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Dashlane` | `dashlane` |
| `Dassault Systèmes` | `dassaultsystemes` |
| `Data Version Control` | `dataversioncontrol` |
+| `data.ai` | `datadotai` |
| `Databricks` | `databricks` |
| `DataCamp` | `datacamp` |
| `Datadog` | `datadog` |
@@ -1034,6 +1036,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Kodi` | `kodi` |
| `Kofax` | `kofax` |
| `Komoot` | `komoot` |
+| `Konami` | `konami` |
| `Kongregate` | `kongregate` |
| `Konva` | `konva` |
| `Kotlin` | `kotlin` |
@@ -1348,6 +1351,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `OpenTelemetry` | `opentelemetry` |
| `OpenVPN` | `openvpn` |
| `OpenWrt` | `openwrt` |
+| `OpenZFS` | `openzfs` |
| `Opera` | `opera` |
| `OPNSense` | `opnsense` |
| `Opsgenie` | `opsgenie` |
@@ -1713,6 +1717,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Simkl` | `simkl` |
| `Simple Analytics` | `simpleanalytics` |
| `Simple Icons` | `simpleicons` |
+| `Simplenote` | `simplenote` |
| `Sina Weibo` | `sinaweibo` |
| `SingleStore` | `singlestore` |
| `SitePoint` | `sitepoint` |
@@ -2154,6 +2159,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Yarn` | `yarn` |
| `Yelp` | `yelp` |
| `Yoast` | `yoast` |
+| `YOLO` | `yolo` |
| `YourTravel.TV` | `yourtraveldottv` |
| `YouTube` | `youtube` |
| `YouTube Gaming` | `youtubegaming` |
From af6c92779f566b702239e05ef2c9f12b0297f9bd Mon Sep 17 00:00:00 2001
From: deepmalamittal
Date: Sat, 5 Mar 2022 19:58:32 -0500
Subject: [PATCH 421/626] Add lunacy icon (#7132)
* Added Credly icon
* Added New icon Lunacy
* Corrected lint errors
Co-authored-by: Engin Diri
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 5 +++++
icons/lunacy.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/lunacy.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 8331fa4f0d5b..78c3f404ad0f 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -5859,6 +5859,11 @@
"hex": "E74430",
"source": "https://lumen.laravel.com/"
},
+ {
+ "title": "Lunacy",
+ "hex": "179DE3",
+ "source": "https://icons8.com/lunacy"
+ },
{
"title": "Lydia",
"hex": "0180FF",
diff --git a/icons/lunacy.svg b/icons/lunacy.svg
new file mode 100644
index 000000000000..7176b3104fc6
--- /dev/null
+++ b/icons/lunacy.svg
@@ -0,0 +1 @@
+Lunacy
\ No newline at end of file
From 44dbdae4b4253a1331048485618b5792cff415f9 Mon Sep 17 00:00:00 2001
From: PHONG
Date: Sun, 6 Mar 2022 08:11:01 +0700
Subject: [PATCH 422/626] Add Zara (#5961)
* Add Zara
* Update zara.svg
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 5 +++++
icons/zara.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/zara.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 78c3f404ad0f..97a68a23a85b 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -11607,6 +11607,11 @@
"hex": "FF4A00",
"source": "https://zapier.com/about/brand"
},
+ {
+ "title": "Zara",
+ "hex": "000000",
+ "source": "https://www.zara.com/"
+ },
{
"title": "Zcash",
"aliases": {
diff --git a/icons/zara.svg b/icons/zara.svg
new file mode 100644
index 000000000000..3ce62197a80a
--- /dev/null
+++ b/icons/zara.svg
@@ -0,0 +1 @@
+Zara
\ No newline at end of file
From 67bc5b921190fc76bb1f3dfee1505f10c6f80b17 Mon Sep 17 00:00:00 2001
From: Peter Noble <15157491+PeterShaggyNoble@users.noreply.github.com>
Date: Sun, 6 Mar 2022 01:33:06 +0000
Subject: [PATCH 423/626] Add Zazzle (#5784)
* Add Zazzle
* reordered Zara's icon in simple-icons.json
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 6 ++++++
icons/zazzle.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/zazzle.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 97a68a23a85b..52528975edcd 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -11612,6 +11612,12 @@
"hex": "000000",
"source": "https://www.zara.com/"
},
+ {
+ "title": "Zazzle",
+ "hex": "212121",
+ "source": "https://www.zazzle.com/logo",
+ "guidelines": "https://www.zazzle.com/logo"
+ },
{
"title": "Zcash",
"aliases": {
diff --git a/icons/zazzle.svg b/icons/zazzle.svg
new file mode 100644
index 000000000000..93d8331e3c17
--- /dev/null
+++ b/icons/zazzle.svg
@@ -0,0 +1 @@
+Zazzle
\ No newline at end of file
From 121b43c64800b88a153a2f62a324d2765ddb8083 Mon Sep 17 00:00:00 2001
From: Asmit Malakannawar <81866614+Asmit2952@users.noreply.github.com>
Date: Sun, 6 Mar 2022 10:49:20 +0530
Subject: [PATCH 424/626] Add IBM Cloud icon (#6746)
* Added IBM Cloud icon
Signed-off-by: Asmit2952
* modified svg
* Changed color from teal to blue
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 5 +++++
icons/ibmcloud.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/ibmcloud.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 52528975edcd..10ef87159af2 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -4658,6 +4658,11 @@
"source": "https://www.ibm.com/design/language/ibm-logos/8-bar/",
"guidelines": "https://www.ibm.com/design/language/ibm-logos/8-bar/"
},
+ {
+ "title": "IBM Cloud",
+ "hex": "1261FE",
+ "source": "https://www.ibm.com/brand/systems/cloud/brand/logo"
+ },
{
"title": "IBM Watson",
"hex": "BE95FF",
diff --git a/icons/ibmcloud.svg b/icons/ibmcloud.svg
new file mode 100644
index 000000000000..86a258bfdd50
--- /dev/null
+++ b/icons/ibmcloud.svg
@@ -0,0 +1 @@
+IBM Cloud
\ No newline at end of file
From 7bea1d073bc23b2ca7b4247a137d0d66229f1279 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Mond=C3=A9jar?=
Date: Tue, 8 Mar 2022 12:11:12 +0100
Subject: [PATCH 425/626] Update remove-labels-gh-action version (#7202)
---
.github/workflows/remove-labels.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/remove-labels.yml b/.github/workflows/remove-labels.yml
index d1b8bdf18463..f901152c9123 100644
--- a/.github/workflows/remove-labels.yml
+++ b/.github/workflows/remove-labels.yml
@@ -13,7 +13,7 @@ jobs:
if: github.event.pull_request.merged
runs-on: ubuntu-latest
steps:
- - uses: mondeja/remove-labels-gh-action@v1.0.0
+ - uses: mondeja/remove-labels-gh-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
labels: |
@@ -30,7 +30,7 @@ jobs:
if: github.event_name == 'pull_request_target' && (! github.event.pull_request.merged)
runs-on: ubuntu-latest
steps:
- - uses: mondeja/remove-labels-gh-action@v1.0.0
+ - uses: mondeja/remove-labels-gh-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
labels: |
@@ -41,7 +41,7 @@ jobs:
if: github.event.issue.state == 'closed'
runs-on: ubuntu-latest
steps:
- - uses: mondeja/remove-labels-gh-action@v1.0.0
+ - uses: mondeja/remove-labels-gh-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
labels: |
From dc67e7e6ab38b4f6f69c272b809652c6ee532ea8 Mon Sep 17 00:00:00 2001
From: Jorge Amado Soria Ramirez
Date: Wed, 9 Mar 2022 12:52:54 -0600
Subject: [PATCH 426/626] Pubg (#7199)
* adding NetBox icon
* adding PUBG
* removed NetBox
* removed Netbox inco
Co-authored-by: Engin Diri
---
_data/simple-icons.json | 5 +++++
icons/pubg.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/pubg.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 10ef87159af2..2a8fa5808337 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -8009,6 +8009,11 @@
"source": "https://www.proxmox.com/en/news/media-kit",
"guidelines": "https://www.proxmox.com/en/news/media-kit"
},
+ {
+ "title": "PUBG",
+ "hex": "FEAB02",
+ "source": "https://www.pubgmobile.com/en/event/brandassets/"
+ },
{
"title": "Publons",
"hex": "336699",
diff --git a/icons/pubg.svg b/icons/pubg.svg
new file mode 100644
index 000000000000..219fcb06938a
--- /dev/null
+++ b/icons/pubg.svg
@@ -0,0 +1 @@
+PUBG
\ No newline at end of file
From d362dbbab9cac74727f72e83e7ef9ff96985c4f7 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Sun, 13 Mar 2022 00:18:49 +0000
Subject: [PATCH 427/626] version bump
---
package.json | 2 +-
slugs.md | 5 +++++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 08fb33aef400..bfcbf9c1c646 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "simple-icons",
- "version": "6.13.0",
+ "version": "6.14.0",
"description": "SVG icons for popular brands https://simpleicons.org",
"homepage": "https://simpleicons.org",
"keywords": [
diff --git a/slugs.md b/slugs.md
index 9cfc0a02c431..cd7051ce8eda 100644
--- a/slugs.md
+++ b/slugs.md
@@ -894,6 +894,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Iata` | `iata` |
| `iBeacon` | `ibeacon` |
| `IBM` | `ibm` |
+| `IBM Cloud` | `ibmcloud` |
| `IBM Watson` | `ibmwatson` |
| `Iceland` | `iceland` |
| `Icinga` | `icinga` |
@@ -1113,6 +1114,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Lubuntu` | `lubuntu` |
| `Lufthansa` | `lufthansa` |
| `Lumen` | `lumen` |
+| `Lunacy` | `lunacy` |
| `Lydia` | `lydia` |
| `Lyft` | `lyft` |
| `MAAS` | `maas` |
@@ -1506,6 +1508,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `ProtonVPN` | `protonvpn` |
| `Protractor` | `protractor` |
| `Proxmox` | `proxmox` |
+| `PUBG` | `pubg` |
| `Publons` | `publons` |
| `PubMed` | `pubmed` |
| `Pug` | `pug` |
@@ -2170,6 +2173,8 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Zalando` | `zalando` |
| `Zalo` | `zalo` |
| `Zapier` | `zapier` |
+| `Zara` | `zara` |
+| `Zazzle` | `zazzle` |
| `Zcash` | `zcash` |
| `ZDF` | `zdf` |
| `Zelle` | `zelle` |
From 9b823a427fca2e985e29f3eb4831bdf9cec3930d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Mond=C3=A9jar?=
Date: Mon, 14 Mar 2022 14:26:40 +0100
Subject: [PATCH 428/626] Add `funding` key to package.json (#7218)
---
package.json | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/package.json b/package.json
index bfcbf9c1c646..5cd27ba7342a 100644
--- a/package.json
+++ b/package.json
@@ -30,6 +30,10 @@
},
"author": "Simple Icons Collaborators",
"license": "CC0-1.0",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/simple-icons"
+ },
"devDependencies": {
"editorconfig-checker": "4.0.2",
"esbuild": "0.14.21",
From db4a963330a583240096cff84f495e32318d0397 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Mond=C3=A9jar?=
Date: Mon, 14 Mar 2022 14:37:59 +0100
Subject: [PATCH 429/626] Add `funding` key to composer.json (#7219)
---
composer.json | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/composer.json b/composer.json
index 2d6071c3ec3f..0769053a2291 100644
--- a/composer.json
+++ b/composer.json
@@ -9,5 +9,11 @@
"support": {
"issues": "https://github.com/simple-icons/simple-icons/issues"
},
- "license": "CC0-1.0"
+ "license": "CC0-1.0",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/simple-icons"
+ }
+ ]
}
From 2dac88518fe182d154484a9403c1babd25affc67 Mon Sep 17 00:00:00 2001
From: Kevin Garcia
Date: Mon, 14 Mar 2022 06:40:49 -0700
Subject: [PATCH 430/626] Add OpenSearch (#7207)
---
_data/simple-icons.json | 6 ++++++
icons/opensearch.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/opensearch.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 2a8fa5808337..4de616f1ea82 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -7138,6 +7138,12 @@
"hex": "2081E2",
"source": "https://docs.opensea.io"
},
+ {
+ "title": "OpenSearch",
+ "hex": "005EB8",
+ "source": "https://opensearch.org/brand.html",
+ "guidelines": "https://opensearch.org/brand.html"
+ },
{
"title": "OpenSSL",
"hex": "721412",
diff --git a/icons/opensearch.svg b/icons/opensearch.svg
new file mode 100644
index 000000000000..02063bbd5eb4
--- /dev/null
+++ b/icons/opensearch.svg
@@ -0,0 +1 @@
+OpenSearch
From c05890dc5f91aa7a5a02c5a42bb6a29bedd78b79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Mond=C3=A9jar?=
Date: Mon, 14 Mar 2022 14:57:01 +0100
Subject: [PATCH 431/626] Fix error in issue templates links (#7220)
---
.github/ISSUE_TEMPLATE/documentation.yml | 2 +-
.github/ISSUE_TEMPLATE/icon_removal.yml | 2 +-
.github/ISSUE_TEMPLATE/icon_update.yml | 2 +-
.github/ISSUE_TEMPLATE/package.yml | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml
index 740f3d6210a1..790d0ed49dc6 100644
--- a/.github/ISSUE_TEMPLATE/documentation.yml
+++ b/.github/ISSUE_TEMPLATE/documentation.yml
@@ -11,7 +11,7 @@ body:
closed issues) before you continue.
- [docs-issues]: https://github.com/simple-icons/simple-icons/issues?q=is%3Aissue+label%3Adocs+is%3Aopen
+ [docs-issues]: https://github.com/simple-icons/simple-icons/issues?q=is%3Aissue+label%3Adocs
- type: dropdown
attributes:
diff --git a/.github/ISSUE_TEMPLATE/icon_removal.yml b/.github/ISSUE_TEMPLATE/icon_removal.yml
index 05228f54350c..d798cb4ec390 100644
--- a/.github/ISSUE_TEMPLATE/icon_removal.yml
+++ b/.github/ISSUE_TEMPLATE/icon_removal.yml
@@ -12,7 +12,7 @@ body:
you're reporting then leave a comment on it or add a reaction.
- [removal-issues]: https://github.com/simple-icons/simple-icons/issues?q=is%3Aissue+label%3A%22removal+request%22%2C%22breaking+change%22+is%3Aopen+
+ [removal-issues]: https://github.com/simple-icons/simple-icons/issues?q=is%3Aissue+label%3A%22removal+request%22%2C%22breaking+change%22
- type: input
attributes:
diff --git a/.github/ISSUE_TEMPLATE/icon_update.yml b/.github/ISSUE_TEMPLATE/icon_update.yml
index 088879bef246..f0a4885595c8 100644
--- a/.github/ISSUE_TEMPLATE/icon_update.yml
+++ b/.github/ISSUE_TEMPLATE/icon_update.yml
@@ -12,7 +12,7 @@ body:
you're reporting then leave a comment on it or add a reaction.
- [icon-outdated-issues]: https://github.com/simple-icons/simple-icons/issues?q=is%3Aissue+label%3A%22icon+outdated%22+is%3Aopen
+ [icon-outdated-issues]: https://github.com/simple-icons/simple-icons/issues?q=is%3Aissue+label%3A%22icon+outdated%22
- type: input
attributes:
diff --git a/.github/ISSUE_TEMPLATE/package.yml b/.github/ISSUE_TEMPLATE/package.yml
index 557d7b0df625..1127ed314526 100644
--- a/.github/ISSUE_TEMPLATE/package.yml
+++ b/.github/ISSUE_TEMPLATE/package.yml
@@ -11,7 +11,7 @@ body:
closed issues) before you continue.
- [package-issues]: https://github.com/simple-icons/simple-icons/issues?q=is%3Aissue+label%3Apackage+is%3Aopen
+ [package-issues]: https://github.com/simple-icons/simple-icons/issues?q=is%3Aissue+label%3Apackage
- type: dropdown
attributes:
From dd4ddc7fa9fcaa4a01a5a30c3a71c296da9abbe4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Mond=C3=A9jar?=
Date: Mon, 14 Mar 2022 21:04:50 +0100
Subject: [PATCH 432/626] Avoid certain cases for data consistency (#7222)
---
.jsonschema.json | 37 +++++++++++++++++++------------------
tests/index.test.js | 11 ++++++++++-
2 files changed, 29 insertions(+), 19 deletions(-)
diff --git a/.jsonschema.json b/.jsonschema.json
index e70bd219524f..e6134f20950f 100644
--- a/.jsonschema.json
+++ b/.jsonschema.json
@@ -55,22 +55,6 @@
"license": {
"description": "The license for the icon",
"oneOf": [
- {
- "type": "object",
- "required": ["type", "url"],
- "properties": {
- "type": {
- "description": "The license name or 'custom'",
- "type": "string",
- "enum": ["custom"]
- },
- "url": {
- "description": "The URL to the license text by the brand",
- "$ref": "#/definitions/url"
- }
- },
- "additionalProperties": false
- },
{
"type": "object",
"required": ["type"],
@@ -166,6 +150,22 @@
}
},
"additionalProperties": false
+ },
+ {
+ "type": "object",
+ "required": ["type", "url"],
+ "properties": {
+ "type": {
+ "description": "The license name or 'custom'",
+ "type": "string",
+ "enum": ["custom"]
+ },
+ "url": {
+ "description": "The URL to the license text by the brand",
+ "$ref": "#/definitions/url"
+ }
+ },
+ "additionalProperties": false
}
]
}
@@ -235,7 +235,6 @@
"pattern": "^https?://[^\\s]+$"
}
},
-
"type": "object",
"properties": {
"icons": {
@@ -243,5 +242,7 @@
"type": "array",
"items": { "$ref": "#/definitions/brand" }
}
- }
+ },
+ "additionalProperties": false,
+ "required": ["icons"]
}
diff --git a/tests/index.test.js b/tests/index.test.js
index c8cc475d81fd..15a5748fbc84 100644
--- a/tests/index.test.js
+++ b/tests/index.test.js
@@ -1,5 +1,5 @@
import simpleIcons from '../index.js';
-import { getIconSlug, getIconsData } from '../scripts/utils.js';
+import { getIconSlug, getIconsData, titleToSlug } from '../scripts/utils.js';
import { test } from 'mocha';
import { strict as assert } from 'node:assert';
@@ -16,6 +16,15 @@ import { strict as assert } from 'node:assert';
assert.equal(found.hex, icon.hex);
assert.equal(found.source, icon.source);
});
+
+ if (icon.slug) {
+ // if an icon data has a slug, it must be different to the
+ // slug inferred from the title, which prevents adding
+ // unnecessary slugs to icons data
+ test(`'${icon.title}' slug must be necessary`, () => {
+ assert.notEqual(titleToSlug(icon.title), icon.slug);
+ });
+ }
});
test(`Iterating over simpleIcons only exposes icons`, () => {
From 7fa8f5847a1e4e16378225ebf72052173c45aa86 Mon Sep 17 00:00:00 2001
From: jjloneman
Date: Mon, 14 Mar 2022 22:13:14 -0400
Subject: [PATCH 433/626] =?UTF-8?q?feat:=20=E2=9C=A8=20add=20conventional-?=
=?UTF-8?q?commits=20icon=20(#7027)=20(#7200)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
_data/simple-icons.json | 8 ++++++++
icons/conventionalcommits.svg | 1 +
2 files changed, 9 insertions(+)
create mode 100644 icons/conventionalcommits.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 4de616f1ea82..b5b60530ad60 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -2179,6 +2179,14 @@
"hex": "2478CC",
"source": "https://press.contentful.com/media_kits"
},
+ {
+ "title": "Conventional Commits",
+ "hex": "FE5196",
+ "source": "https://www.conventionalcommits.org",
+ "license": {
+ "type": "MIT"
+ }
+ },
{
"title": "Convertio",
"hex": "FF3333",
diff --git a/icons/conventionalcommits.svg b/icons/conventionalcommits.svg
new file mode 100644
index 000000000000..0ec669fb44e9
--- /dev/null
+++ b/icons/conventionalcommits.svg
@@ -0,0 +1 @@
+Conventional Commits
\ No newline at end of file
From 83ef249e5568bf1ec7d81f810009b8057c7c2b38 Mon Sep 17 00:00:00 2001
From: Sigurd Spieckermann <2206639+sisp@users.noreply.github.com>
Date: Wed, 16 Mar 2022 04:52:49 +0100
Subject: [PATCH 434/626] Add Poetry icon (#7223)
---
_data/simple-icons.json | 5 +++++
icons/poetry.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/poetry.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index b5b60530ad60..558d3c6aea36 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -7780,6 +7780,11 @@
"hex": "892CA0",
"source": "https://podman.io/"
},
+ {
+ "title": "Poetry",
+ "hex": "60A5FA",
+ "source": "https://python-poetry.org/"
+ },
{
"title": "Pointy",
"hex": "009DE0",
diff --git a/icons/poetry.svg b/icons/poetry.svg
new file mode 100644
index 000000000000..a158c6d28cc1
--- /dev/null
+++ b/icons/poetry.svg
@@ -0,0 +1 @@
+Poetry
From ec0b4fa05f22160fcf8f9e3ea3561a700922e717 Mon Sep 17 00:00:00 2001
From: herokunt <48509601+herokunt@users.noreply.github.com>
Date: Wed, 16 Mar 2022 15:08:31 +0100
Subject: [PATCH 435/626] add Matter.js and update Ajv (#6508)
Co-authored-by: Jorge Amado Soria Ramirez
Co-authored-by: Sachin Raja
---
_data/simple-icons.json | 9 +++++++--
icons/ajv.svg | 2 +-
icons/matterdotjs.svg | 1 +
3 files changed, 9 insertions(+), 3 deletions(-)
create mode 100644 icons/matterdotjs.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 558d3c6aea36..3a47bf9dfe26 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -357,9 +357,9 @@
"source": "https://airtable.com/press"
},
{
- "title": "AJV",
+ "title": "Ajv",
"hex": "23C8D2",
- "source": "https://ajv.js.org/"
+ "source": "https://github.com/ajv-validator/ajv/blob/95b15b683dfb60f63c5129b0426629b968d53af8/docs/.vuepress/public/img/ajv.svg"
},
{
"title": "Alacritty",
@@ -6043,6 +6043,11 @@
"hex": "000000",
"source": "https://matrix.org"
},
+ {
+ "title": "Matter.js",
+ "hex": "76F09B",
+ "source": "https://brm.io/matter-js"
+ },
{
"title": "Mattermost",
"hex": "0058CC",
diff --git a/icons/ajv.svg b/icons/ajv.svg
index 813bd20c0b18..10463ade45c8 100644
--- a/icons/ajv.svg
+++ b/icons/ajv.svg
@@ -1 +1 @@
-AJV
\ No newline at end of file
+Ajv
diff --git a/icons/matterdotjs.svg b/icons/matterdotjs.svg
new file mode 100644
index 000000000000..c77b6175f3c1
--- /dev/null
+++ b/icons/matterdotjs.svg
@@ -0,0 +1 @@
+Matter.js
\ No newline at end of file
From 923b7fbc6077e8f80923c4608007b8e6afb8791d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Mond=C3=A9jar?=
Date: Wed, 16 Mar 2022 15:54:38 +0100
Subject: [PATCH 436/626] Automatically remove `help wanted` labels (#7228)
It could really confusing `help wanted` labels in closed issues.
---
.github/workflows/remove-labels.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/remove-labels.yml b/.github/workflows/remove-labels.yml
index f901152c9123..2b265b86a206 100644
--- a/.github/workflows/remove-labels.yml
+++ b/.github/workflows/remove-labels.yml
@@ -48,3 +48,4 @@ jobs:
in discussion
pending
tracking
+ help wanted
From 43127404f5986889f619103c725e38e2f2af3837 Mon Sep 17 00:00:00 2001
From: Brian Reading <48337326+bmreading@users.noreply.github.com>
Date: Wed, 16 Mar 2022 23:10:06 -0500
Subject: [PATCH 437/626] Add Supermicro (#4659)
* Add Supermicro icon
* Fix alphabetical order
* Fix sizing
* corrected collinear segments for Supermicro icon
* removed yarn.lock
Co-authored-by: Adam
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 5 +++++
icons/supermicro.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/supermicro.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 3a47bf9dfe26..e59df2ca755c 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -9928,6 +9928,11 @@
"source": "https://stackoverflow.design/brand/logo/",
"guidelines": "https://stackoverflow.com/legal/trademark-guidance"
},
+ {
+ "title": "Supermicro",
+ "hex": "151F6D",
+ "source": "https://www.supermicro.com/manuals/supermicro_logo_guidelines.pdf"
+ },
{
"title": "SurveyMonkey",
"hex": "00BF6F",
diff --git a/icons/supermicro.svg b/icons/supermicro.svg
new file mode 100644
index 000000000000..f87e0d145f9e
--- /dev/null
+++ b/icons/supermicro.svg
@@ -0,0 +1 @@
+Supermicro
\ No newline at end of file
From cee42082160d8c6e51f9c1647ecf0b75ccc169ed Mon Sep 17 00:00:00 2001
From: Peter Noble <15157491+PeterShaggyNoble@users.noreply.github.com>
Date: Thu, 17 Mar 2022 04:43:22 +0000
Subject: [PATCH 438/626] Add Chemex (#4792)
Co-authored-by: Jorge Amado Soria Ramirez
Co-authored-by: Sachin Raja
---
_data/simple-icons.json | 5 +++++
icons/chemex.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/chemex.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index e59df2ca755c..7b51559dfae5 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -1742,6 +1742,11 @@
"hex": "F09820",
"source": "https://www.chef.io/"
},
+ {
+ "title": "Chemex",
+ "hex": "4D2B1A",
+ "source": "https://vtlogo.com/chemex-coffeemaker-vector-logo-svg/"
+ },
{
"title": "Chevrolet",
"hex": "CD9834",
diff --git a/icons/chemex.svg b/icons/chemex.svg
new file mode 100644
index 000000000000..4a1dfcfb92f0
--- /dev/null
+++ b/icons/chemex.svg
@@ -0,0 +1 @@
+Chemex
\ No newline at end of file
From a189d943eef9f8a6263fca18c636288068973828 Mon Sep 17 00:00:00 2001
From: Engin Diri
Date: Thu, 17 Mar 2022 06:05:19 +0100
Subject: [PATCH 439/626] Add k3s icon (#6851)
Co-authored-by: Sachin Raja
---
_data/simple-icons.json | 5 +++++
icons/k3s.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/k3s.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 7b51559dfae5..aaaa1742e07b 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -5227,6 +5227,11 @@
"hex": "AD29B6",
"source": "https://justgiving.com"
},
+ {
+ "title": "K3s",
+ "hex": "FFC61C",
+ "source": "https://k3s.io/"
+ },
{
"title": "Kaggle",
"hex": "20BEFF",
diff --git a/icons/k3s.svg b/icons/k3s.svg
new file mode 100644
index 000000000000..5513a88195da
--- /dev/null
+++ b/icons/k3s.svg
@@ -0,0 +1 @@
+K3s
From 5b16d5a55f939c951a3ae287655102b4322fbc30 Mon Sep 17 00:00:00 2001
From: Engin Diri
Date: Thu, 17 Mar 2022 06:14:53 +0100
Subject: [PATCH 440/626] Add lens icon (#6853)
Co-authored-by: Sachin Raja
---
_data/simple-icons.json | 5 +++++
icons/lens.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/lens.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index aaaa1742e07b..31a68e45f88b 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -5626,6 +5626,11 @@
"hex": "E2231A",
"source": "https://news.lenovo.com/press-kits/"
},
+ {
+ "title": "Lens",
+ "hex": "3D90CE",
+ "source": "https://github.com/lensapp/lens/blob/3cc12d9599b655a366e7a34c356d2a84654b2466/docs/img/lens-logo-icon.svg"
+ },
{
"title": "Lerna",
"hex": "2F0268",
diff --git a/icons/lens.svg b/icons/lens.svg
new file mode 100644
index 000000000000..87739f9813d1
--- /dev/null
+++ b/icons/lens.svg
@@ -0,0 +1 @@
+Lens
\ No newline at end of file
From ff66940b786faba3a9e05edcfaa90bb091511d86 Mon Sep 17 00:00:00 2001
From: Engin Diri
Date: Thu, 17 Mar 2022 06:20:09 +0100
Subject: [PATCH 441/626] Add ClickHouse icon (#6854)
Co-authored-by: Sachin Raja
---
_data/simple-icons.json | 5 +++++
icons/clickhouse.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/clickhouse.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 31a68e45f88b..36c103719f72 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -1843,6 +1843,11 @@
"hex": "000000",
"source": "https://www.claris.com/"
},
+ {
+ "title": "ClickHouse",
+ "hex": "FFCC01",
+ "source": "https://github.com/ClickHouse/ClickHouse/blob/12bd453a43819176d25ecf247033f6cb1af54beb/website/images/logo-clickhouse.svg"
+ },
{
"title": "ClickUp",
"hex": "7B68EE",
diff --git a/icons/clickhouse.svg b/icons/clickhouse.svg
new file mode 100644
index 000000000000..689aca379156
--- /dev/null
+++ b/icons/clickhouse.svg
@@ -0,0 +1 @@
+ClickHouse
\ No newline at end of file
From 1336163800d12fdfb7478daac7640f326f467538 Mon Sep 17 00:00:00 2001
From: Engin Diri
Date: Thu, 17 Mar 2022 06:29:48 +0100
Subject: [PATCH 442/626] Add Grandfrais icon (#6490)
Co-authored-by: Sachin Raja
---
_data/simple-icons.json | 5 +++++
icons/grandfrais.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/grandfrais.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 36c103719f72..354784948c90 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -4209,6 +4209,11 @@
"hex": "15C39A",
"source": "https://www.grammarly.com/media-assets"
},
+ {
+ "title": "Grand Frais",
+ "hex": "ED2D2F",
+ "source": "https://www.grandfrais.com/"
+ },
{
"title": "GraphQL",
"hex": "E10098",
diff --git a/icons/grandfrais.svg b/icons/grandfrais.svg
new file mode 100644
index 000000000000..3c40956f5504
--- /dev/null
+++ b/icons/grandfrais.svg
@@ -0,0 +1 @@
+Grand Frais
From c493aea7426f1fdc6ea4eae0122e1004ae266f7a Mon Sep 17 00:00:00 2001
From: Sigurd Spieckermann <2206639+sisp@users.noreply.github.com>
Date: Fri, 18 Mar 2022 01:41:34 +0100
Subject: [PATCH 443/626] Update MobX icon (#7229)
---
icons/mobx.svg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/icons/mobx.svg b/icons/mobx.svg
index 2c6bf0c4b07b..ddb98a80da9c 100644
--- a/icons/mobx.svg
+++ b/icons/mobx.svg
@@ -1 +1 @@
-MobX
\ No newline at end of file
+MobX
From 0b0a2192ac3d74e4031e420afbfe7d2bb30896b6 Mon Sep 17 00:00:00 2001
From: Amandeep Singh <35252877+adsingh14@users.noreply.github.com>
Date: Fri, 18 Mar 2022 06:41:25 +0530
Subject: [PATCH 444/626] AWS lambda icon (#6907)
Co-authored-by: Sachin Raja
---
_data/simple-icons.json | 6 ++++++
icons/awslambda.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/awslambda.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 354784948c90..5b1b02584dcd 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -1077,6 +1077,12 @@
"hex": "FF9900",
"source": "https://docs.amplify.aws/"
},
+ {
+ "title": "AWS Lambda",
+ "hex": "FF9900",
+ "source": "https://aws.amazon.com/architecture/icons/",
+ "guidelines": "https://aws.amazon.com/architecture/icons/"
+ },
{
"title": "Azure Artifacts",
"hex": "CB2E6D",
diff --git a/icons/awslambda.svg b/icons/awslambda.svg
new file mode 100644
index 000000000000..e02e27ee44fe
--- /dev/null
+++ b/icons/awslambda.svg
@@ -0,0 +1 @@
+AWS Lambda
\ No newline at end of file
From 69d2d49eed8655860d38bf7ac0dfada5ac51a327 Mon Sep 17 00:00:00 2001
From: Sachin Raja
Date: Thu, 17 Mar 2022 18:26:13 -0700
Subject: [PATCH 445/626] update source and guidelines for Amazon/AWS icons
(#7233)
---
_data/simple-icons.json | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 5b1b02584dcd..d1f434b9424a 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -474,7 +474,8 @@
{
"title": "Amazon DynamoDB",
"hex": "4053D6",
- "source": "https://aws.amazon.com/architecture/icons/"
+ "source": "https://aws.amazon.com/architecture/icons/",
+ "guidelines": "https://aws.amazon.com/architecture/icons/"
},
{
"title": "Amazon Fire TV",
@@ -484,7 +485,8 @@
{
"title": "Amazon Lumberyard",
"hex": "66459B",
- "source": "https://aws.amazon.com/lumberyard/support"
+ "source": "https://aws.amazon.com/architecture/icons/",
+ "guidelines": "https://aws.amazon.com/architecture/icons/"
},
{
"title": "Amazon Pay",
@@ -499,7 +501,8 @@
{
"title": "Amazon S3",
"hex": "569A31",
- "source": "https://aws.amazon.com/architecture/icons/"
+ "source": "https://aws.amazon.com/architecture/icons/",
+ "guidelines": "https://aws.amazon.com/architecture/icons/"
},
{
"title": "AMD",
@@ -1075,7 +1078,8 @@
{
"title": "AWS Amplify",
"hex": "FF9900",
- "source": "https://docs.amplify.aws/"
+ "source": "https://aws.amazon.com/architecture/icons/",
+ "guidelines": "https://aws.amazon.com/architecture/icons/"
},
{
"title": "AWS Lambda",
From e3de6e4f44ad80ce5a7c450aa7dc5784cd3cbafe Mon Sep 17 00:00:00 2001
From: Sigurd Spieckermann <2206639+sisp@users.noreply.github.com>
Date: Fri, 18 Mar 2022 14:36:58 +0100
Subject: [PATCH 446/626] Add guidelines link to GitLab icon data (#7234)
---
_data/simple-icons.json | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index d1f434b9424a..10ffe5c76dbe 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -3851,7 +3851,8 @@
{
"title": "GitLab",
"hex": "FCA121",
- "source": "https://about.gitlab.com/press/press-kit/"
+ "source": "https://about.gitlab.com/press/press-kit/",
+ "guidelines": "https://about.gitlab.com/handbook/marketing/corporate-marketing/brand-activation/trademark-guidelines/"
},
{
"title": "Gitpod",
From ad9296b4da2b164f1d5d24d9c794e3f8e8a83d6b Mon Sep 17 00:00:00 2001
From: Sigurd Spieckermann <2206639+sisp@users.noreply.github.com>
Date: Fri, 18 Mar 2022 18:58:15 +0100
Subject: [PATCH 447/626] Add Linkerd icon (#7230)
Co-authored-by: Engin Diri
---
_data/simple-icons.json | 5 +++++
icons/linkerd.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/linkerd.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 10ffe5c76dbe..f7a42d487c94 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -5761,6 +5761,11 @@
"source": "https://brand.linkedin.com",
"guidelines": "https://brand.linkedin.com/policies"
},
+ {
+ "title": "Linkerd",
+ "hex": "2BEDA7",
+ "source": "https://cncf-branding.netlify.app/projects/linkerd/"
+ },
{
"title": "Linkfire",
"hex": "FF3850",
diff --git a/icons/linkerd.svg b/icons/linkerd.svg
new file mode 100644
index 000000000000..4b81684a713c
--- /dev/null
+++ b/icons/linkerd.svg
@@ -0,0 +1 @@
+Linkerd
From f1fe0ffcbe3bdd8591021264bd0e460d83663588 Mon Sep 17 00:00:00 2001
From: elliotwutingfeng
Date: Sat, 19 Mar 2022 02:11:38 +0800
Subject: [PATCH 448/626] Soundcharts (#7225)
* Add MapLibre
* Add soundcharts icon
* Remove Maplibre (accidentally added to this branch)
Co-authored-by: Engin Diri
---
_data/simple-icons.json | 5 +++++
icons/soundcharts.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/soundcharts.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index f7a42d487c94..14518adb739b 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -9519,6 +9519,11 @@
"hex": "FFFFFF",
"source": "https://www.sony.com"
},
+ {
+ "title": "Soundcharts",
+ "hex": "0C1528",
+ "source": "https://soundcharts.com/img/soundcharts-logo.svg"
+ },
{
"title": "SoundCloud",
"hex": "FF3300",
diff --git a/icons/soundcharts.svg b/icons/soundcharts.svg
new file mode 100644
index 000000000000..df3b6d0dd11a
--- /dev/null
+++ b/icons/soundcharts.svg
@@ -0,0 +1 @@
+Soundcharts
\ No newline at end of file
From aa277c1ccf5b301fb2061bb808f2bc04cdf93c9e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Mond=C3=A9jar?=
Date: Sat, 19 Mar 2022 06:48:18 +0100
Subject: [PATCH 449/626] Add CoinMarketCap (#5205)
* Add CoinMarketCap
* Update color
* Update CoinMarketCap path
* removed two unnecessary points in path
Co-authored-by: Peter Noble
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 5 +++++
icons/coinmarketcap.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/coinmarketcap.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 14518adb739b..4af53cc77912 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -2127,6 +2127,11 @@
"hex": "0052FF",
"source": "https://www.coinbase.com/press"
},
+ {
+ "title": "CoinMarketCap",
+ "hex": "17181B",
+ "source": "https://www.coinmarketcap.com/"
+ },
{
"title": "Commerzbank",
"hex": "FFCC33",
diff --git a/icons/coinmarketcap.svg b/icons/coinmarketcap.svg
new file mode 100644
index 000000000000..7dd4943bc8d5
--- /dev/null
+++ b/icons/coinmarketcap.svg
@@ -0,0 +1 @@
+CoinMarketCap
\ No newline at end of file
From 8732c53939a9cd93259da7937485372a5a129be8 Mon Sep 17 00:00:00 2001
From: Derek Smart
Date: Sat, 19 Mar 2022 02:13:34 -0400
Subject: [PATCH 450/626] Add Liquibase icon (#7232)
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 6 ++++++
icons/liquibase.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/liquibase.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 4af53cc77912..fe0ffc704014 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -5812,6 +5812,12 @@
"hex": "ED3237",
"source": "https://lionairthai.com/en/"
},
+ {
+ "title": "Liquibase",
+ "hex": "2962FF",
+ "source": "https://www.liquibase.com/brand",
+ "guidelines": "https://www.liquibase.com/brand"
+ },
{
"title": "Lit",
"hex": "324FFF",
diff --git a/icons/liquibase.svg b/icons/liquibase.svg
new file mode 100644
index 000000000000..92e92ec3c853
--- /dev/null
+++ b/icons/liquibase.svg
@@ -0,0 +1 @@
+Liquibase
\ No newline at end of file
From 60853bcf3f49ad9188beba17e848c765c0fb88b0 Mon Sep 17 00:00:00 2001
From: Peter Noble <15157491+PeterShaggyNoble@users.noreply.github.com>
Date: Sat, 19 Mar 2022 06:27:34 +0000
Subject: [PATCH 451/626] Add GNOME Terminal (#5690)
Co-authored-by: Jorge Amado Soria Ramirez
Co-authored-by: Sachin Raja
---
_data/simple-icons.json | 9 ++++++++-
icons/gnometerminal.svg | 1 +
2 files changed, 9 insertions(+), 1 deletion(-)
create mode 100644 icons/gnometerminal.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index fe0ffc704014..f63bd8701415 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -3893,7 +3893,14 @@
{
"title": "GNOME",
"hex": "4A86CF",
- "source": "https://wiki.gnome.org/Engagement/BrandGuidelines"
+ "source": "https://wiki.gnome.org/Engagement/BrandGuidelines",
+ "guidelines": "https://gitlab.gnome.org/Teams/Design/brand/-/blob/master/brand-book.pdf"
+ },
+ {
+ "title": "GNOME Terminal",
+ "hex": "241F31",
+ "source": "https://gitlab.gnome.org/GNOME/gnome-terminal/-/blob/9c32e039bfb7902c136dc7aed3308e027325776c/data/icons/hicolor_apps_scalable_org.gnome.Terminal.svg",
+ "guidelines": "https://gitlab.gnome.org/Teams/Design/brand/-/blob/master/brand-book.pdf"
},
{
"title": "GNU",
diff --git a/icons/gnometerminal.svg b/icons/gnometerminal.svg
new file mode 100644
index 000000000000..c64a8b96cbca
--- /dev/null
+++ b/icons/gnometerminal.svg
@@ -0,0 +1 @@
+GNOME Terminal
\ No newline at end of file
From 135ba30ad99749aa4d5fdc0bb8e139d19a7ce6e6 Mon Sep 17 00:00:00 2001
From: Sigurd Spieckermann <2206639+sisp@users.noreply.github.com>
Date: Sat, 19 Mar 2022 07:32:50 +0100
Subject: [PATCH 452/626] Add DVC icon (#7221)
Co-authored-by: Jorge Amado Soria Ramirez
---
_data/simple-icons.json | 6 ++++++
icons/dvc.svg | 1 +
2 files changed, 7 insertions(+)
create mode 100644 icons/dvc.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index f63bd8701415..f8ecbbc682bb 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -2858,6 +2858,12 @@
"hex": "58CC02",
"source": "https://www.duolingo.com/"
},
+ {
+ "title": "DVC",
+ "hex": "13ADC7",
+ "source": "https://iterative.ai/brand/",
+ "guidelines": "https://iterative.ai/brand/"
+ },
{
"title": "dwm",
"hex": "1177AA",
diff --git a/icons/dvc.svg b/icons/dvc.svg
new file mode 100644
index 000000000000..590ff7a340a4
--- /dev/null
+++ b/icons/dvc.svg
@@ -0,0 +1 @@
+DVC
\ No newline at end of file
From 8b0507bc5933cc77626d6905e1dad55541929850 Mon Sep 17 00:00:00 2001
From: elliotwutingfeng
Date: Sat, 19 Mar 2022 14:40:54 +0800
Subject: [PATCH 453/626] add CrateDB (#7237)
Co-authored-by: Sachin Raja
---
_data/simple-icons.json | 5 +++++
icons/cratedb.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/cratedb.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index f8ecbbc682bb..7a7ddabc0e4e 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -2279,6 +2279,11 @@
"hex": "E5422B",
"source": "https://craftcms.com/brand-resources"
},
+ {
+ "title": "CrateDB",
+ "hex": "009DC7",
+ "source": "https://github.com/crate/crate-docs-theme/blob/cbd734b3617489ca937f35e30f37f3f6c1870e1f/src/crate/theme/rtd/crate/static/images/crate-logo.svg"
+ },
{
"title": "Create React App",
"hex": "09D3AC",
diff --git a/icons/cratedb.svg b/icons/cratedb.svg
new file mode 100644
index 000000000000..15d63d873f00
--- /dev/null
+++ b/icons/cratedb.svg
@@ -0,0 +1 @@
+CrateDB
\ No newline at end of file
From 1387442910197483f41a9754d319bc6b3e94c7cc Mon Sep 17 00:00:00 2001
From: elliotwutingfeng
Date: Sat, 19 Mar 2022 14:54:17 +0800
Subject: [PATCH 454/626] Dask (#7210)
---
_data/simple-icons.json | 5 +++++
icons/dask.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/dask.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index 7a7ddabc0e4e..e1c4387bb70f 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -2441,6 +2441,11 @@
"hex": "0E353D",
"source": "https://brandfolder.com/dashlane/brandkitpartners"
},
+ {
+ "title": "Dask",
+ "hex": "FDA061",
+ "source": "https://github.com/dask/dask/blob/fc911b6d481e602f7549eecb180c3f7622260001/docs/source/images/dask_icon.svg"
+ },
{
"title": "Dassault Systèmes",
"hex": "005386",
diff --git a/icons/dask.svg b/icons/dask.svg
new file mode 100644
index 000000000000..e71275c0acc9
--- /dev/null
+++ b/icons/dask.svg
@@ -0,0 +1 @@
+Dask
\ No newline at end of file
From 8a4cd71bf1bb6be0c70ff31a60d82b74cad3b0d3 Mon Sep 17 00:00:00 2001
From: elliotwutingfeng
Date: Sat, 19 Mar 2022 14:58:34 +0800
Subject: [PATCH 455/626] Stardock (#7205)
Co-authored-by: Sachin Raja
---
_data/simple-icons.json | 5 +++++
icons/stardock.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/stardock.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index e1c4387bb70f..d0ff718767a7 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -9803,6 +9803,11 @@
"source": "https://starbucks.com/",
"guidelines": "https://creative.starbucks.com/"
},
+ {
+ "title": "Stardock",
+ "hex": "004B8D",
+ "source": "https://www.stardock.com/press/stardock%20branding/"
+ },
{
"title": "Starling Bank",
"hex": "6935D3",
diff --git a/icons/stardock.svg b/icons/stardock.svg
new file mode 100644
index 000000000000..a603188a9806
--- /dev/null
+++ b/icons/stardock.svg
@@ -0,0 +1 @@
+Stardock
\ No newline at end of file
From 7a11bfe7aeaff80ebd917ab987c3ad3cde481d2a Mon Sep 17 00:00:00 2001
From: elliotwutingfeng
Date: Sat, 19 Mar 2022 21:43:19 +0800
Subject: [PATCH 456/626] Add ONLYOFFICE (#7192)
Co-authored-by: Sachin Raja
---
_data/simple-icons.json | 5 +++++
icons/onlyoffice.svg | 1 +
2 files changed, 6 insertions(+)
create mode 100644 icons/onlyoffice.svg
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index d0ff718767a7..f69431f299d7 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -7117,6 +7117,11 @@
"source": "https://onlyfans.com/brand",
"guidelines": "https://onlyfans.com/brand"
},
+ {
+ "title": "ONLYOFFICE",
+ "hex": "444444",
+ "source": "https://www.onlyoffice.com/en/press-downloads.aspx"
+ },
{
"title": "ONNX",
"hex": "005CED",
diff --git a/icons/onlyoffice.svg b/icons/onlyoffice.svg
new file mode 100644
index 000000000000..ffbf41c2c045
--- /dev/null
+++ b/icons/onlyoffice.svg
@@ -0,0 +1 @@
+ONLYOFFICE
\ No newline at end of file
From e58dc74d306a18522d5d780d9740b80774506c2a Mon Sep 17 00:00:00 2001
From: Sigurd Spieckermann <2206639+sisp@users.noreply.github.com>
Date: Sat, 19 Mar 2022 15:19:49 +0100
Subject: [PATCH 457/626] add "exports" for SVG files (#7241)
Co-authored-by: Sachin Raja
---
package.json | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/package.json b/package.json
index 5cd27ba7342a..9c23e5fce944 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,10 @@
"require": "./icons.js",
"default": "./icons.js"
},
- "./icons/*": "./icons/*.js"
+ "./icons/*": [
+ "./icons/*.js",
+ "./icons/*"
+ ]
},
"sideEffects": false,
"repository": {
From 4937ac3e225c4a7762135f52783cf681e27b0532 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Sun, 20 Mar 2022 00:19:47 +0000
Subject: [PATCH 458/626] version bump
---
README.md | 2 +-
package.json | 2 +-
slugs.md | 23 ++++++++++++++++++++++-
3 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 06ded9d7439b..b55f44315676 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
Simple Icons
-Over 2100 Free SVG icons for popular brands. See them all on one page at SimpleIcons.org. Contributions, corrections & requests can be made on GitHub.
+Over 2200 Free SVG icons for popular brands. See them all on one page at SimpleIcons.org. Contributions, corrections & requests can be made on GitHub.