diff --git a/.jsonschema.json b/.jsonschema.json
index 58b00dc84806..4ea3788872c9 100644
--- a/.jsonschema.json
+++ b/.jsonschema.json
@@ -19,7 +19,7 @@
},
"source": {
"description": "The website from which the icon was sourced",
- "$ref": "#/definitions/url"
+ "$ref": "#/definitions/sourceUrl"
},
"guidelines": {
"description": "The brand guidelines",
@@ -229,6 +229,20 @@
"description": "The name of the brand",
"type": "string"
},
+ "sourceUrl": {
+ "$id": "#sourceUrl",
+ "description": "URL for icon source. If is a GitHub URL, is validated to contain a commit hash, to be an issue comment or to be a GitHub organization URL",
+ "type": "string",
+ "if": {
+ "pattern": "^https://github\\.com/(?!(features/actions)|(sponsors)|(logos)$)"
+ },
+ "then": {
+ "pattern": "^https://github\\.com/[^/]+/[^/]+/(blob/[a-f\\d]{40}/[^\\s]+)|(tree/[a-f\\d]{40}(/[^\\s]+)?)|(((issues)|(pull))/\\d+#issuecomment-\\d+)$"
+ },
+ "else": {
+ "$ref": "#/definitions/url"
+ }
+ },
"url": {
"$id": "#url",
"description": "HTTPS-only URL for a source",
diff --git a/_data/simple-icons.json b/_data/simple-icons.json
index afb6b860c5ca..4d8c2e6d2bdd 100644
--- a/_data/simple-icons.json
+++ b/_data/simple-icons.json
@@ -3,7 +3,7 @@
{
"title": ".ENV",
"hex": "ECD53F",
- "source": "https://github.com/motdotla/dotenv",
+ "source": "https://github.com/motdotla/dotenv/tree/40e75440337d1de2345dc8326d6108331f583fd8",
"aliases": {
"aka": [
"Dotenv"
@@ -1010,7 +1010,7 @@
{
"title": "Ardour",
"hex": "C61C3E",
- "source": "https://github.com/Ardour/ardour/tree/master/tools/misc_resources/"
+ "source": "https://github.com/Ardour/ardour/tree/d39f064756c88197adfe13fe695b86bd8cb3bb81/tools/misc_resources"
},
{
"title": "Arduino",
@@ -1226,7 +1226,7 @@
{
"title": "Awesome Lists",
"hex": "FC60A8",
- "source": "https://github.com/sindresorhus/awesome/tree/master/media"
+ "source": "https://github.com/sindresorhus/awesome/tree/52b6dbacde01c2595f2133a5378cb8d2f89906fa/media"
},
{
"title": "awesomeWM",
@@ -1823,6 +1823,11 @@
"source": "https://www.caffeine.tv/",
"guidelines": "https://www.caffeine.tv/newsroom.html"
},
+ {
+ "title": "Cairo Graphics",
+ "hex": "F39914",
+ "source": "https://github.com/freedesktop/cairo/blob/44f808fce9f437e14f2b0ef4e1583def8ab578ae/doc/tutorial/slides/cairo-title.svg"
+ },
{
"title": "Cairo Metro",
"hex": "C10C0C",
@@ -2181,7 +2186,7 @@
{
"title": "CNCF",
"hex": "231F20",
- "source": "https://github.com/cncf/artwork/blob/master/examples/other.md#cncf-logos",
+ "source": "https://github.com/cncf/artwork/blob/d2ed716cc0769e6c65d2e58f9a503fca02b60a56/examples/other.md#cncf-logos",
"guidelines": "https://www.cncf.io/brand-guidelines/"
},
{
@@ -2315,8 +2320,8 @@
},
{
"title": "CodeSandbox",
- "hex": "000000",
- "source": "https://codesandbox.io"
+ "hex": "151515",
+ "source": "https://codesandbox.io/CodeSandbox-Press-Kit.zip"
},
{
"title": "Codeship",
@@ -2639,7 +2644,7 @@
{
"title": "D-EDGE",
"hex": "432975",
- "source": "https://github.com/d-edge/JoinUs/blob/main/d-edge.svg"
+ "source": "https://github.com/d-edge/JoinUs/blob/4d8b5cf7145db26649fe9f1587194e44dbbe3565/d-edge.svg"
},
{
"title": "D-Wave Systems",
@@ -2685,7 +2690,7 @@
{
"title": "Dart",
"hex": "0175C2",
- "source": "https://github.com/dart-lang/site-shared/tree/master/src/_assets/image/dart/logo"
+ "source": "https://github.com/dart-lang/site-shared/tree/18458ff440afd3d06f04e5cb871c4c5eda29c9d5/src/_assets/image/dart/logo"
},
{
"title": "Darty",
@@ -3044,7 +3049,7 @@
{
"title": "DocuSign",
"hex": "FFCC22",
- "source": "https://github.com/simple-icons/simple-icons/issues/1098"
+ "source": "https://www.docusign.com/sites/all/themes/custom/docusign/favicons/mstile-310x310.png"
},
{
"title": "Dogecoin",
@@ -3304,7 +3309,7 @@
{
"title": "Electron Fiddle",
"hex": "E79537",
- "source": "https://github.com/electron/fiddle"
+ "source": "https://github.com/electron/fiddle/blob/19360ade76354240630e5660469b082128e1e57e/assets/icons/fiddle.svg"
},
{
"title": "electron-builder",
@@ -3335,7 +3340,7 @@
{
"title": "Elixir",
"hex": "4B275F",
- "source": "https://github.com/elixir-lang/elixir-lang.github.com/tree/master/images/logo"
+ "source": "https://github.com/elixir-lang/elixir-lang.github.com/tree/031746384ee23b9be19298c92a9699c56cc05845/images/logo"
},
{
"title": "Ello",
@@ -4654,6 +4659,12 @@
"hex": "FF3633",
"source": "https://www.graylog.org"
},
+ {
+ "title": "Greenhouse",
+ "hex": "24A47F",
+ "source": "https://brand.greenhouse.io/brand-portal/p/6",
+ "guidelines": "https://brand.greenhouse.io/brand-portal/p/5"
+ },
{
"title": "GreenSock",
"hex": "88CE02",
@@ -4740,7 +4751,7 @@
{
"title": "Gutenberg",
"hex": "000000",
- "source": "https://github.com/WordPress/gutenberg/blob/master/docs/final-g-wapuu-black.svg"
+ "source": "https://github.com/WordPress/gutenberg/blob/7829913ae117dfb561d14c600eea7b281afd6556/docs/final-g-wapuu-black.svg"
},
{
"title": "Habr",
@@ -5004,6 +5015,11 @@
"hex": "E40521",
"source": "https://www.honda.ie/"
},
+ {
+ "title": "Honey",
+ "hex": "FF6801",
+ "source": "https://www.joinhoney.com/"
+ },
{
"title": "Hootsuite",
"hex": "143059",
@@ -5497,7 +5513,7 @@
{
"title": "Jamstack",
"hex": "F0047F",
- "source": "https://github.com/jamstack/jamstack.org/tree/main/src/site/img/logo"
+ "source": "https://github.com/jamstack/jamstack.org/tree/9e761f6b77ad11e8dc6d3a953e61e53f1d99a1e6/src/site/img/logo"
},
{
"title": "Jasmine",
@@ -6043,7 +6059,7 @@
{
"title": "Kubernetes",
"hex": "326CE5",
- "source": "https://github.com/kubernetes/kubernetes/tree/master/logo"
+ "source": "https://github.com/kubernetes/kubernetes/tree/cac53883f4714452f3084a22e4be20d042a9df33/logo"
},
{
"title": "Kubuntu",
@@ -6527,7 +6543,7 @@
{
"title": "Magisk",
"hex": "00AF9C",
- "source": "https://github.com/topjohnwu/Magisk/blob/master/app/src/main/res/drawable/ic_magisk.xml"
+ "source": "https://github.com/topjohnwu/Magisk/blob/23ad611566b557f26d268920692b25aa89fc0070/app/src/main/res/drawable/ic_magisk.xml"
},
{
"title": "Mail.Ru",
@@ -7357,7 +7373,7 @@
{
"title": "Neutralinojs",
"hex": "F89901",
- "source": "https://github.com/neutralinojs/neutralinojs"
+ "source": "https://github.com/neutralinojs/design-guide/blob/52a7232598ff22cddd810a3079e09a2cc2892609/logo/neutralinojs_logo_vector.svg"
},
{
"title": "New Balance",
@@ -7481,7 +7497,7 @@
{
"title": "NixOS",
"hex": "5277C3",
- "source": "https://github.com/NixOS/nixos-homepage/tree/master/logo"
+ "source": "https://github.com/NixOS/nixos-homepage/tree/58cfdb770aba28b73446a1b3ee65a5cec4f0d44f/logo"
},
{
"title": "Node-RED",
@@ -7590,7 +7606,7 @@
{
"title": "Nunjucks",
"hex": "1C4913",
- "source": "https://github.com/mozilla/nunjucks/blob/master/docs/img/favicon.png"
+ "source": "https://github.com/mozilla/nunjucks/blob/fd500902d7c88672470c87170796de52fc0f791a/docs/img/favicon.png"
},
{
"title": "Nutanix",
@@ -7761,7 +7777,7 @@
{
"title": "Open Containers Initiative",
"hex": "262261",
- "source": "https://github.com/opencontainers/artwork/tree/master/oci/icon"
+ "source": "https://github.com/opencontainers/artwork/tree/d8ccfe94471a0236b1d4a3f0f90862c4fe5486ce/oci/icon"
},
{
"title": "Open Source Initiative",
@@ -7889,7 +7905,7 @@
{
"title": "Openverse",
"hex": "FFE033",
- "source": "https://github.com/WordPress/openverse/blob/main/brand/icon.svg",
+ "source": "https://github.com/WordPress/openverse/blob/5db2545d6b73ec4aa5e908822683ee9d18af301d/brand/icon.svg",
"guidelines": "https://www.figma.com/file/GIIQ4sDbaToCfFQyKMvzr8/Openverse-Design-Library?node-id=312%3A487"
},
{
@@ -7974,7 +7990,7 @@
{
"title": "OSMC",
"hex": "17394A",
- "source": "https://github.com/osmc/osmc/tree/master/assets"
+ "source": "https://github.com/osmc/website/tree/e7d0d8002660c979ae5119e28d1c69c893ac9f76/content/themes/osmc/assets/img/logo"
},
{
"title": "osu!",
@@ -8026,7 +8042,7 @@
{
"title": "Packagist",
"hex": "F28D1A",
- "source": "https://github.com/composer/packagist/issues/1147",
+ "source": "https://github.com/composer/packagist/issues/1147#issuecomment-747951608",
"license": {
"type": "MIT"
}
@@ -8067,7 +8083,7 @@
{
"title": "Palantir",
"hex": "101113",
- "source": "https://github.com/palantir/conjure/blob/master/docs/media/palantir-logo.svg"
+ "source": "https://github.com/palantir/conjure/blob/1b0d450dc52c4822b4c9d1da8c61ad7f78855fe5/docs/media/palantir-logo.svg"
},
{
"title": "Palo Alto Software",
@@ -8699,6 +8715,11 @@
"hex": "F7B93E",
"source": "https://github.com/prettier/prettier-logo/blob/06997b307e0608ebee2044dafa0b9429d6b5a103/images/prettier-icon-clean-centred.svg"
},
+ {
+ "title": "Prevention",
+ "hex": "44C1C5",
+ "source": "https://prevention.com"
+ },
{
"title": "Prezi",
"hex": "3181FF",
@@ -8995,7 +9016,7 @@
{
"title": "QMK",
"hex": "333333",
- "source": "https://github.com/qmk/qmk_firmware"
+ "source": "https://github.com/qmk/qmk.fm/blob/d6f7b646aa03f2941bb3977ba13a07ca351f20ae/assets/images/badge-dark.svg"
},
{
"title": "Qt",
@@ -9296,7 +9317,7 @@
{
"title": "Redux",
"hex": "764ABC",
- "source": "https://github.com/reactjs/redux/tree/master/logo"
+ "source": "https://github.com/reduxjs/redux/tree/8ad084251a5b3e4617157fc52795b6284e68bc1e/logo"
},
{
"title": "Redux-Saga",
@@ -9394,7 +9415,7 @@
{
"title": "Resurrection Remix OS",
"hex": "000000",
- "source": "https://github.com/ResurrectionRemix"
+ "source": "https://avatars.githubusercontent.com/u/4931972"
},
{
"title": "RetroArch",
@@ -9645,7 +9666,7 @@
{
"title": "Ruby Sinatra",
"hex": "000000",
- "source": "https://github.com/sinatra/resources/tree/master/logo"
+ "source": "https://github.com/sinatra/resources/tree/64c22f9b4bf2e52b5c0c875ba16671f295689efb/logo"
},
{
"title": "RubyGems",
@@ -9938,7 +9959,7 @@
{
"title": "Sensu",
"hex": "89C967",
- "source": "https://github.com/sensu/sensu-go/blob/master/dashboard/src/assets/logo/graphic/green.svg"
+ "source": "https://github.com/sensu/web/blob/c823738c11e576d6b2e5d4ca2d216dbd472c0b11/src/assets/logo/graphic/green.svg"
},
{
"title": "Sentry",
@@ -9954,7 +9975,7 @@
{
"title": "Sequelize",
"hex": "52B0E7",
- "source": "https://github.com/sequelize/sequelize/pull/12871"
+ "source": "https://github.com/sequelize/website/blob/e6a482fa58a839b15ace80e3c8901ed2887be45e/static/img/logo-simple.svg"
},
{
"title": "Server Fault",
@@ -10468,7 +10489,7 @@
{
"title": "Spinnaker",
"hex": "139BB4",
- "source": "https://github.com/spinnaker/spinnaker.github.io/tree/master/assets/images"
+ "source": "https://github.com/spinnaker/spinnaker.github.io/tree/0cdd37af7541293a810494a1bb4d7df9ef553d60/assets/images"
},
{
"title": "Spinrilla",
@@ -10851,6 +10872,11 @@
"hex": "151F6D",
"source": "https://www.supermicro.com/manuals/supermicro_logo_guidelines.pdf"
},
+ {
+ "title": "SurrealDB",
+ "hex": "FF00A0",
+ "source": "https://surrealdb.com/media"
+ },
{
"title": "SurveyMonkey",
"hex": "00BF6F",
@@ -11642,7 +11668,7 @@
{
"title": "uBlock Origin",
"hex": "800000",
- "source": "https://github.com/gorhill/uBlock/blob/master/src/img/ublock.svg"
+ "source": "https://github.com/gorhill/uBlock/blob/59aa235952a9289cfe72e4fb9f8a7d8f4c80be9a/src/img/ublock.svg"
},
{
"title": "Ubuntu",
@@ -12160,7 +12186,7 @@
{
"title": "wasmCloud",
"hex": "00BC8E",
- "source": "https://github.com/wasmCloud/branding/",
+ "source": "https://github.com/wasmCloud/branding/tree/0827503c63f55471a0c709e97d609f56d716be40",
"guidelines": "https://github.com/wasmCloud/branding/"
},
{
@@ -12539,7 +12565,7 @@
{
"title": "Xamarin",
"hex": "3498DB",
- "source": "https://github.com/dotnet/swag/tree/master/xamarin"
+ "source": "https://github.com/dotnet-foundation/swag/tree/0d21c59a604f348f509d772c12a99b888ed9f21f/xamarin"
},
{
"title": "XAML",
@@ -12599,7 +12625,7 @@
{
"title": "XO",
"hex": "5ED9C7",
- "source": "https://github.com/xojs/xo"
+ "source": "https://github.com/xojs/xo/tree/f9c7db99255d009b3c81535ced021c3f6ade57b4"
},
{
"title": "XRP",
@@ -12798,7 +12824,7 @@
{
"title": "ZeroMQ",
"hex": "DF0000",
- "source": "https://github.com/zeromq/zeromq.org/blob/master/static/safari-pinned-tab.svg"
+ "source": "https://github.com/zeromq/zeromq.org/blob/00f635314a0b0b801d411c7efef314dfd9625404/static/safari-pinned-tab.svg"
},
{
"title": "Zerply",
diff --git a/icons/cairographics.svg b/icons/cairographics.svg
new file mode 100644
index 000000000000..c68a827aad00
--- /dev/null
+++ b/icons/cairographics.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/codesandbox.svg b/icons/codesandbox.svg
index 970408815fee..99d85c3697d4 100644
--- a/icons/codesandbox.svg
+++ b/icons/codesandbox.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/icons/greenhouse.svg b/icons/greenhouse.svg
new file mode 100644
index 000000000000..e859f5007813
--- /dev/null
+++ b/icons/greenhouse.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/honey.svg b/icons/honey.svg
new file mode 100644
index 000000000000..4443fe348ad9
--- /dev/null
+++ b/icons/honey.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/prevention.svg b/icons/prevention.svg
new file mode 100644
index 000000000000..59e1b5c4503b
--- /dev/null
+++ b/icons/prevention.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/icons/surrealdb.svg b/icons/surrealdb.svg
new file mode 100644
index 000000000000..f4d46063f401
--- /dev/null
+++ b/icons/surrealdb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/package.json b/package.json
index 69b4d23f52c9..a27444bd3ea4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "simple-icons",
- "version": "7.13.0",
+ "version": "7.14.0",
"description": "SVG icons for popular brands https://simpleicons.org",
"homepage": "https://simpleicons.org",
"keywords": [
diff --git a/scripts/add-icon-data.js b/scripts/add-icon-data.js
index 1f116b823dda..8093bc349b62 100644
--- a/scripts/add-icon-data.js
+++ b/scripts/add-icon-data.js
@@ -5,6 +5,7 @@ import getRelativeLuminance from 'get-relative-luminance';
import {
URL_REGEX,
collator,
+ getJsonSchemaData,
getIconsDataString,
getIconDataPath,
writeIconsData,
@@ -15,6 +16,7 @@ import {
const hexPattern = /^#?[a-f0-9]{3,8}$/i;
const iconsData = JSON.parse(await getIconsDataString());
+const jsonSchema = await getJsonSchemaData();
const titleValidator = (text) => {
if (!text) return 'This field is required';
@@ -42,6 +44,18 @@ const hexTransformer = (text) => {
return chalk.bgHex(`#${color}`).hex(luminance < 0.4 ? '#fff' : '#000')(text);
};
+const aliasesTransformer = (text) =>
+ text
+ .split(',')
+ .map((x) => chalk.cyan(x))
+ .join(',');
+
+const aliasesChoices = Object.entries(
+ jsonSchema.definitions.brand.properties.aliases.properties,
+)
+ .filter(([k]) => ['aka', 'old'].includes(k))
+ .map(([k, v]) => ({ name: `${k}: ${v.description}`, value: k }));
+
const getIconDataFromAnswers = (answers) => ({
title: answers.title,
hex: answers.hex,
@@ -55,6 +69,21 @@ const getIconDataFromAnswers = (answers) => ({
},
}
: {}),
+ ...(answers.hasAliases
+ ? {
+ aliases: aliasesChoices.reduce((previous, current) => {
+ const promptKey = `${current.value}AliasesList`;
+ if (answers[promptKey])
+ return {
+ ...previous,
+ [current.value]: answers[promptKey]
+ .split(',')
+ .map((x) => x.trim()),
+ };
+ return previous;
+ }, {}),
+ }
+ : {}),
});
const dataPrompt = [
@@ -112,7 +141,29 @@ const dataPrompt = [
},
{
type: 'confirm',
- name: 'confirm',
+ name: 'hasAliases',
+ message: 'The icon has brand aliases?',
+ default: false,
+ },
+ {
+ type: 'checkbox',
+ name: 'aliasesTypes',
+ message: 'What types of aliases do you want to add?',
+ choices: aliasesChoices,
+ when: ({ hasAliases }) => hasAliases,
+ },
+ ...aliasesChoices.map((x) => ({
+ type: 'input',
+ name: `${x.value}AliasesList`,
+ message: x.value,
+ suffix: ' (separate with commas)',
+ validate: (text) => Boolean(text),
+ transformer: aliasesTransformer,
+ when: (answers) => answers?.aliasesTypes?.includes(x.value),
+ })),
+ {
+ type: 'confirm',
+ name: 'confirmToAdd',
message: (answers) => {
const icon = getIconDataFromAnswers(answers);
return [
@@ -127,7 +178,7 @@ const dataPrompt = [
const answers = await inquirer.prompt(dataPrompt);
const icon = getIconDataFromAnswers(answers);
-if (answers.confirm) {
+if (answers.confirmToAdd) {
iconsData.icons.push(icon);
iconsData.icons.sort((a, b) => collator.compare(a.title, b.title));
await writeIconsData(iconsData);
diff --git a/scripts/lint/jsonlint.js b/scripts/lint/jsonlint.js
index 7e61515786d9..920d0bd4203d 100644
--- a/scripts/lint/jsonlint.js
+++ b/scripts/lint/jsonlint.js
@@ -7,27 +7,23 @@
import { promises as fs } from 'node:fs';
import path from 'node:path';
import { Validator } from 'jsonschema';
-import { getDirnameFromImportMeta, getIconsData } from '../utils.js';
+import {
+ getDirnameFromImportMeta,
+ getIconsData,
+ getJsonSchemaData,
+} from '../utils.js';
+const icons = await getIconsData();
const __dirname = getDirnameFromImportMeta(import.meta.url);
+const schema = await getJsonSchemaData(path.resolve(__dirname, '..', '..'));
-const rootDir = path.resolve(__dirname, '..', '..');
-const schemaFile = path.resolve(rootDir, '.jsonschema.json');
+const validator = new Validator();
+const result = validator.validate({ icons }, schema);
+if (result.errors.length > 0) {
+ result.errors.forEach((error) => {
+ console.error(error);
+ });
-(async () => {
- const icons = await getIconsData();
- const schema = JSON.parse(await fs.readFile(schemaFile, 'utf8'));
-
- const validator = new Validator();
- const result = validator.validate({ icons }, schema);
- if (result.errors.length > 0) {
- result.errors.forEach((error) => {
- console.error(error);
- });
-
- console.error(
- `Found ${result.errors.length} error(s) in simple-icons.json`,
- );
- process.exit(1);
- }
-})();
+ console.error(`Found ${result.errors.length} error(s) in simple-icons.json`);
+ process.exit(1);
+}
diff --git a/scripts/utils.js b/scripts/utils.js
index 8cf6cee36653..0d5252deecff 100644
--- a/scripts/utils.js
+++ b/scripts/utils.js
@@ -30,6 +30,16 @@ const TITLE_TO_SLUG_RANGE_REGEX = /[^a-z0-9]/g;
export const URL_REGEX = /^https:\/\/[^\s]+$/;
+/**
+ * Get the directory name where this file is located from `import.meta.url`,
+ * equivalent to the `__dirname` global variable in CommonJS.
+ * @param {String} importMetaUrl import.meta.url
+ */
+export const getDirnameFromImportMeta = (importMetaUrl) =>
+ path.dirname(fileURLToPath(importMetaUrl));
+
+const __dirname = getDirnameFromImportMeta(import.meta.url);
+
/**
* Get the slug/filename for an icon.
* @param {Object} icon The icon data as it appears in _data/simple-icons.json
@@ -95,14 +105,26 @@ export const htmlFriendlyToTitle = (htmlFriendlyTitle) =>
(_, ref) => ({ quot: '"', amp: '&', lt: '<', gt: '>' }[ref]),
);
+/**
+ * Get JSON schema data.
+ * @param {String|undefined} rootDir Path to the root directory of the project.
+ */
+export const getJsonSchemaData = async (
+ rootDir = path.resolve(__dirname, '..'),
+) => {
+ const __dirname = getDirnameFromImportMeta(import.meta.url);
+ const jsonSchemaPath = path.resolve(rootDir, '.jsonschema.json');
+ const jsonSchemaString = await fs.readFile(jsonSchemaPath, 'utf8');
+ return JSON.parse(jsonSchemaString);
+};
+
/**
* Get path of _data/simpe-icons.json.
* @param {String|undefined} rootDir Path to the root directory of the project.
*/
-export const getIconDataPath = (rootDir) => {
- if (rootDir === undefined) {
- rootDir = path.resolve(getDirnameFromImportMeta(import.meta.url), '..');
- }
+export const getIconDataPath = (
+ rootDir = path.resolve(getDirnameFromImportMeta(import.meta.url), '..'),
+) => {
return path.resolve(rootDir, '_data', 'simple-icons.json');
};
@@ -136,14 +158,6 @@ export const writeIconsData = async (iconsData, rootDir) => {
);
};
-/**
- * Get the directory name where this file is located from `import.meta.url`,
- * equivalent to the `__dirname` global variable in CommonJS.
- * @param {String} importMetaUrl import.meta.url
- */
-export const getDirnameFromImportMeta = (importMetaUrl) =>
- path.dirname(fileURLToPath(importMetaUrl));
-
/**
* Replace Windows newline characters by Unix ones.
* @param {String} text The text to replace
diff --git a/slugs.md b/slugs.md
index 3f0382603b96..fde7e448e09f 100644
--- a/slugs.md
+++ b/slugs.md
@@ -348,6 +348,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Cachet` | `cachet` |
| `CafePress` | `cafepress` |
| `Caffeine` | `caffeine` |
+| `Cairo Graphics` | `cairographics` |
| `Cairo Metro` | `cairometro` |
| `CakePHP` | `cakephp` |
| `Campaign Monitor` | `campaignmonitor` |
@@ -876,6 +877,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Grav` | `grav` |
| `Gravatar` | `gravatar` |
| `Graylog` | `graylog` |
+| `Greenhouse` | `greenhouse` |
| `GreenSock` | `greensock` |
| `Grid.ai` | `griddotai` |
| `Gridsome` | `gridsome` |
@@ -940,6 +942,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Homebridge` | `homebridge` |
| `homify` | `homify` |
| `Honda` | `honda` |
+| `Honey` | `honey` |
| `Hootsuite` | `hootsuite` |
| `Hoppscotch` | `hoppscotch` |
| `Hotels.com` | `hotelsdotcom` |
@@ -1610,6 +1613,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `PrestaShop` | `prestashop` |
| `Presto` | `presto` |
| `Prettier` | `prettier` |
+| `Prevention` | `prevention` |
| `Prezi` | `prezi` |
| `Prime` | `prime` |
| `Prime Video` | `primevideo` |
@@ -1999,6 +2003,7 @@ update the script at 'scripts/release/update-slugs-table.js'.
| `Supabase` | `supabase` |
| `Super User` | `superuser` |
| `Supermicro` | `supermicro` |
+| `SurrealDB` | `surrealdb` |
| `SurveyMonkey` | `surveymonkey` |
| `SUSE` | `suse` |
| `Suzuki` | `suzuki` |