diff --git a/.jsonschema.json b/.jsonschema.json index c62dd76e..0f1b1014 100644 --- a/.jsonschema.json +++ b/.jsonschema.json @@ -13,7 +13,7 @@ "slug": { "description": "The brand name slug (used as filename in icons/)", "type": "string", - "pattern": "^[a-z0-9\\-]+_[a-z0-9\\-]+$", + "pattern": "^[a-z0-9\\-]+(_[a-z0-9\\-]+)?$", "required": false }, "hex": { diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index afdc072d..4d15e26a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -201,19 +201,19 @@ The filename of the SVG should correspond to the `` used in the markup fi filename: citroen.svg ``` -1. Replace the following symbols with their alias depending on their position in the title: +1. Replace the following symbols with their alias: - | Symbol | Start | Middle | End | - | :----: | :---- | :----: | ---: | - | + | plus | plus | plus | - | . | dot- | -dot- | -dot | - | & | and- | -and- | -and | + | Symbol | Alias | + | :----: | ----- | + | + | plus | + | . | dot | + | & | and | for example: ```yml title: .Net - filename: dot-net.svg + filename: dotnet.svg ``` 1. On rare occasions the resulting name will clash with the name of an existing SVG file in our collection. To resolve such conflicts append `_[MODIFIER]` to the name, where `[MODIFIER]` is a short descriptor of the brand or the service they provide and follows the same rules of construction as above. diff --git a/_data/simple-icons.json b/_data/simple-icons.json index 5e1a87c5..a5aa380f 100644 --- a/_data/simple-icons.json +++ b/_data/simple-icons.json @@ -2,6 +2,7 @@ "icons": [ { "title": ".NET", + "slug": "dot-net", "hex": "512BD4", "source": "https://github.com/dotnet/brand/" }, @@ -37,6 +38,7 @@ }, { "title": "A-Frame", + "slug": "a-frame", "hex": "EF2D5E", "source": "https://aframe.io/docs/" }, @@ -57,6 +59,7 @@ }, { "title": "About.me", + "slug": "about-dot-me", "hex": "00A98F", "source": "https://about.me/assets" }, @@ -332,6 +335,7 @@ }, { "title": "Alibaba.com", + "slug": "alibaba-dot-com", "hex": "FF6A00", "source": "https://www.alibabagroup.com/en/ir/reports" }, @@ -811,6 +815,7 @@ }, { "title": "AT&T", + "slug": "at-and-t", "hex": "009FDB", "source": "https://www.att.com" }, @@ -846,6 +851,7 @@ }, { "title": "Audio-Technica", + "slug": "audio-technica", "hex": "000000", "source": "https://wikipedia.org/wiki/File:Audio-technica.svg" }, @@ -946,6 +952,7 @@ }, { "title": "B&R Automation", + "slug": "b-and-rautomation", "hex": "FF8800", "source": "https://www.br-automation.com/" }, @@ -1026,6 +1033,7 @@ }, { "title": "Battle.net", + "slug": "battle-dot-net", "hex": "00AEFF", "source": "https://www.blizzard.com/en-gb/" }, @@ -1167,6 +1175,7 @@ }, { "title": "Blockchain.com", + "slug": "blockchain-dot-com", "hex": "121D33", "source": "https://www.blockchain.com/", "guidelines": "https://www.blockchain.com/en/press" @@ -1248,6 +1257,7 @@ }, { "title": "Brand.ai", + "slug": "brand-dot-ai", "hex": "0AA0FF", "source": "https://brand.ai/brand-ai/style" }, @@ -1473,6 +1483,7 @@ }, { "title": "Chart.js", + "slug": "chart-dot-js", "hex": "FF6384", "source": "https://www.chartjs.org/" }, @@ -1665,6 +1676,7 @@ }, { "title": "Co-op", + "slug": "co-op", "hex": "00B1E7", "source": "http://www.co-operative.coop/corporate/press/logos/" }, @@ -1848,6 +1860,7 @@ }, { "title": "Conda-Forge", + "slug": "conda-forge", "hex": "000000", "source": "https://github.com/conda-forge/conda-forge.github.io/" }, @@ -1910,6 +1923,7 @@ }, { "title": "Counter-Strike", + "slug": "counter-strike", "hex": "000000", "source": "https://en.wikipedia.org/wiki/File:CS-GO_Logo.svg" }, @@ -2015,11 +2029,13 @@ }, { "title": "D-Wave Systems", + "slug": "d-wavesystems", "hex": "008CD7", "source": "https://www.dwavesys.com/" }, { "title": "D3.js", + "slug": "d3-dot-js", "hex": "F9A03C", "source": "https://github.com/d3/d3-logo" }, @@ -2212,6 +2228,7 @@ }, { "title": "dev.to", + "slug": "dev-dot-to", "hex": "0A0A0A", "source": "https://dev.to/" }, @@ -2243,6 +2260,7 @@ }, { "title": "diagrams.net", + "slug": "diagrams-dot-net", "hex": "F08705", "source": "https://github.com/jgraph/drawio/blob/4743eba8d5eaa497dc003df7bf7295b695c59bea/src/main/webapp/images/drawlogo.svg" }, @@ -2263,6 +2281,7 @@ }, { "title": "Digi-Key Electronics", + "slug": "digi-keyelectronics", "hex": "CC0000", "source": "https://www.digikey.com/" }, @@ -2354,6 +2373,7 @@ }, { "title": "Draugiem.lv", + "slug": "draugiem-dot-lv", "hex": "FF6600", "source": "https://www.frype.com/applications/dev/docs/logos/" }, @@ -2459,6 +2479,7 @@ }, { "title": "Eclipse Vert.x", + "slug": "eclipsevert-dot-x", "hex": "782A90", "source": "https://github.com/vert-x3/.github/blob/1ad6612d87f35665e50a00fc32eb9c542556385d/workflow-templates/vertx-favicon.svg" }, @@ -2559,6 +2580,7 @@ }, { "title": "Ember.js", + "slug": "ember-dot-js", "hex": "E04E39", "source": "https://emberjs.com/logos/", "guidelines": "https://emberjs.com/logos/" @@ -2716,11 +2738,13 @@ }, { "title": "F-Droid", + "slug": "f-droid", "hex": "1976D2", "source": "https://f-droid.org/" }, { "title": "F-Secure", + "slug": "f-secure", "hex": "00BAFF", "source": "https://vip.f-secure.com/en/marketing/logos" }, @@ -2836,6 +2860,7 @@ }, { "title": "Ferrari N.V.", + "slug": "ferrarin-dot-v-dot", "hex": "EB2E2C", "source": "https://corporate.ferrari.com/" }, @@ -3058,6 +3083,7 @@ }, { "title": "Fraunhofer-Gesellschaft", + "slug": "fraunhofer-gesellschaft", "hex": "179C7D", "source": "https://www.fraunhofer.de/" }, @@ -3073,6 +3099,7 @@ }, { "title": "freedesktop.org", + "slug": "freedesktop-dot-org", "hex": "3B80AE", "source": "https://commons.wikimedia.org/wiki/File:Freedesktop-logo.svg" }, @@ -3348,6 +3375,7 @@ }, { "title": "GOG.com", + "slug": "gog-dot-com", "hex": "86328A", "source": "https://www.cdprojekt.com/en/media/logotypes/" }, @@ -3558,6 +3586,7 @@ }, { "title": "GOV.UK", + "slug": "gov-dot-uk", "hex": "005EA5", "source": "https://github.com/alphagov/design-assets/tree/master/Icons" }, @@ -3902,6 +3931,7 @@ }, { "title": "Hotels.com", + "slug": "hotels-dot-com", "hex": "D32F2F", "source": "https://en.wikipedia.org/wiki/File:Hotels.com_logo.svg" }, @@ -4259,6 +4289,7 @@ }, { "title": "Itch.io", + "slug": "itch-dot-io", "hex": "FA5C5C", "source": "https://itch.io/press-kit", "guidelines": "https://itch.io/press-kit" @@ -4670,6 +4701,7 @@ }, { "title": "Ko-fi", + "slug": "ko-fi", "hex": "FF5E5B", "source": "https://more.ko-fi.com/brand-assets", "guidelines": "https://more.ko-fi.com/brand-assets" @@ -4774,6 +4806,7 @@ }, { "title": "Last.fm", + "slug": "last-dot-fm", "hex": "D51007", "source": "https://commons.wikimedia.org/wiki/File:Lastfm_logo.svg" }, @@ -4865,6 +4898,7 @@ }, { "title": "Libraries.io", + "slug": "libraries-dot-io", "hex": "337AB7", "source": "https://github.com/librariesio/libraries.io/blob/9ab0f659bb7fe137c15cf676612b6811f501a0bd/public/safari-pinned-tab.svg" }, @@ -5096,6 +5130,7 @@ }, { "title": "Mail.Ru", + "slug": "mail-dot-ru", "hex": "005FF9", "source": "https://my.mail.ru" }, @@ -5203,6 +5238,7 @@ }, { "title": "Material-UI", + "slug": "material-ui", "hex": "0081CB", "source": "https://material-ui.com/" }, @@ -5240,6 +5276,7 @@ }, { "title": "Max-Planck-Gesellschaft", + "slug": "max-planck-gesellschaft", "hex": "006C66", "source": "https://www.mpg.de" }, @@ -5377,6 +5414,7 @@ }, { "title": "Micro.blog", + "slug": "micro-dot-blog", "hex": "FF8800", "source": "https://help.micro.blog/" }, @@ -5537,6 +5575,7 @@ }, { "title": "MobX-State-Tree", + "slug": "mobx-state-tree", "hex": "FF7102", "source": "https://github.com/mobxjs/mobx-state-tree/blob/666dabd60a7fb87faf83d177c14f516481b5f141/website/static/img/mobx-state-tree-logo.svg" }, @@ -5772,6 +5811,7 @@ }, { "title": "New Japan Pro-Wrestling", + "slug": "newjapanpro-wrestling", "hex": "FF160B", "source": "https://en.wikipedia.org/wiki/File:NJPW_World_Logo.svg" }, @@ -5788,6 +5828,7 @@ }, { "title": "Next.js", + "slug": "next-dot-js", "hex": "000000", "source": "https://nextjs.org/" }, @@ -5866,11 +5907,13 @@ }, { "title": "Node-RED", + "slug": "node-red", "hex": "8F0000", "source": "https://nodered.org/about/resources/" }, { "title": "Node.js", + "slug": "node-dot-js", "hex": "339933", "source": "https://nodejs.org/en/about/resources/", "guidelines": "https://nodejs.org/en/about/resources/" @@ -5959,6 +6002,7 @@ }, { "title": "Nuxt.js", + "slug": "nuxt-dot-js", "hex": "00C58E", "source": "https://nuxtjs.org/design" }, @@ -6258,6 +6302,7 @@ }, { "title": "p5.js", + "slug": "p5-dot-js", "hex": "ED225D", "source": "https://p5js.org" }, @@ -6325,6 +6370,7 @@ }, { "title": "Parse.ly", + "slug": "parse-dot-ly", "hex": "5BA745", "source": "https://www.parse.ly/press-kit", "guidelines": "https://www.parse.ly/press-kit" @@ -6466,12 +6512,14 @@ }, { "title": "Pi-hole", + "slug": "pi-hole", "hex": "96060C", "source": "https://docs.pi-hole.net", "guidelines": "https://pi-hole.net/trademark-rules-and-brand-guidelines/" }, { "title": "Picarto.TV", + "slug": "picarto-dot-tv", "hex": "1DA456", "source": "https://picarto.tv/site/press" }, @@ -6572,6 +6620,7 @@ }, { "title": "Player.me", + "slug": "player-dot-me", "hex": "C0379A", "source": "https://player.me/p/about-us" }, @@ -6742,11 +6791,13 @@ }, { "title": "pr.co", + "slug": "pr-dot-co", "hex": "0080FF", "source": "https://news.pr.co/media_kits" }, { "title": "pre-commit", + "slug": "pre-commit", "hex": "FAB040", "source": "https://github.com/pre-commit/pre-commit.com/blob/f263cdbcf46f97e1bd6229f2ab6d27bf8290ca88/logo.svg" }, @@ -6846,11 +6897,13 @@ }, { "title": "Proto.io", + "slug": "proto-dot-io", "hex": "34A7C1", "source": "https://proto.io/en/presskit" }, { "title": "protocols.io", + "slug": "protocols-dot-io", "hex": "4D9FE7", "source": "https://www.protocols.io/brand", "guidelines": "https://www.protocols.io/brand" @@ -7211,6 +7264,7 @@ }, { "title": "Redux-Saga", + "slug": "redux-saga", "hex": "999999", "source": "https://github.com/redux-saga/redux-saga/blob/9d2164946f402e594a0dfe453c6d20fb6f14858f/logo/3840/Redux-Saga-Logo.png" }, @@ -7247,6 +7301,7 @@ }, { "title": "repl.it", + "slug": "repl-dot-it", "hex": "667881", "source": "https://repl.it/" }, @@ -7272,6 +7327,7 @@ }, { "title": "reveal.js", + "slug": "reveal-dot-js", "hex": "F2E142", "source": "https://revealjs.com/" }, @@ -7351,6 +7407,7 @@ }, { "title": "Rocket.Chat", + "slug": "rocket-dot-chat", "hex": "F5455C", "source": "https://rocket.chat/press", "guidelines": "https://docs.rocket.chat/guides/brand-and-visual-guidelines/logo" @@ -7363,11 +7420,13 @@ }, { "title": "Rolls-Royce", + "slug": "rolls-royce", "hex": "281432", "source": "https://www.rolls-roycemotorcars.com/" }, { "title": "rollup.js", + "slug": "rollup-dot-js", "hex": "EC4A3F", "source": "https://rollupjs.org/" }, @@ -7530,6 +7589,7 @@ }, { "title": "Sat.1", + "slug": "sat-dot-1", "hex": "047DA3", "source": "https://www.prosiebensat1.com/presse/downloads/logos" }, @@ -7555,6 +7615,7 @@ }, { "title": "scikit-learn", + "slug": "scikit-learn", "hex": "F7931E", "source": "https://github.com/scikit-learn/scikit-learn/blob/c5ef2e985c13119001aa697e446ebb3dbcb326e5/doc/logos/scikit-learn-logo.svg" }, @@ -7646,6 +7707,7 @@ }, { "title": "semantic-release", + "slug": "semantic-release", "hex": "494949", "source": "https://github.com/semantic-release/semantic-release/blob/85bc213f04445a9bb8f19e5d45d6ecd7acccf841/media/semantic-release-logo.svg" }, @@ -7732,6 +7794,7 @@ }, { "title": "Shields.io", + "slug": "shields-dot-io", "hex": "000000", "source": "https://shields.io" }, @@ -7936,6 +7999,7 @@ }, { "title": "Socket.io", + "slug": "socket-dot-io", "hex": "010101", "source": "https://socket.io" }, @@ -8326,6 +8390,7 @@ }, { "title": "styled-components", + "slug": "styled-components", "hex": "DB7093", "source": "https://www.styled-components.com/" }, @@ -8467,6 +8532,7 @@ }, { "title": "T-Mobile", + "slug": "t-mobile", "hex": "E20074", "source": "https://www.t-mobile.com/" }, @@ -8679,6 +8745,7 @@ }, { "title": "Three.js", + "slug": "three-dot-js", "hex": "000000", "source": "https://github.com/mrdoob/three.js/blob/a567b810cfcb7f6a03e4faea99f03c53081da477/files/icon.svg" }, @@ -8800,6 +8867,7 @@ }, { "title": "TP-Link", + "slug": "tp-link", "hex": "4ACBD6", "source": "https://www.tp-link.com/" }, @@ -8866,6 +8934,7 @@ }, { "title": "Trip.com", + "slug": "trip-dot-com", "hex": "287DFA", "source": "https://careers.trip.com/" }, @@ -8911,6 +8980,7 @@ }, { "title": "ts-node", + "slug": "ts-node", "hex": "3178C6", "source": "https://typestrong.org/ts-node/" }, @@ -9346,6 +9416,7 @@ }, { "title": "Vue.js", + "slug": "vue-dot-js", "hex": "4FC08D", "source": "https://github.com/vuejs/art", "license": { @@ -9401,6 +9472,7 @@ }, { "title": "Warner Bros.", + "slug": "warnerbros-dot", "hex": "004DB4", "source": "https://www.warnerbros.com/" }, @@ -9438,6 +9510,7 @@ }, { "title": "webcomponents.org", + "slug": "webcomponents-dot-org", "hex": "29ABE2", "source": "https://www.webcomponents.org/" }, @@ -9496,6 +9569,7 @@ }, { "title": "Weights & Biases", + "slug": "weights-and-biases", "hex": "FFBE00", "source": "https://wandb.ai/" }, @@ -9682,6 +9756,7 @@ }, { "title": "write.as", + "slug": "write-dot-as", "hex": "5BC4EE", "source": "https://write.as/brand", "guidelines": "https://write.as/brand" @@ -9693,11 +9768,13 @@ }, { "title": "X-Pack", + "slug": "x-pack", "hex": "005571", "source": "https://www.elastic.co/brand" }, { "title": "X.Org", + "slug": "x-dot-org", "hex": "F28834", "source": "https://upload.wikimedia.org/wikipedia/commons/9/90/X.Org_Logo.svg" }, @@ -9828,6 +9905,7 @@ }, { "title": "YourTravel.TV", + "slug": "yourtravel-dot-tv", "hex": "F79025", "source": "https://yourtravel.tv" }, @@ -9858,6 +9936,7 @@ }, { "title": "Z-Wave", + "slug": "z-wave", "hex": "1B365D", "source": "https://www.z-wave.com/" }, diff --git a/index.html b/index.html index 53f0ec76..01f7da4c 100644 --- a/index.html +++ b/index.html @@ -9,25 +9,6 @@ {% assign filename = icon.title %} - {% comment %} Replace a period by 'dot' {% endcomment %} - {% assign _splitFilename = filename | split: "" %} - {% if _splitFilename.first == "." %} - {% assign filename = filename | replace_first: ".", "dot-" %} - {% endif %} - {% if _splitFilename.last == "." %} - {% assign _filenameLenMin1 = filename | size | minus: 1 %} - {% assign filename = filename | slice: 0, _filenameLenMin1 | append: "-dot" %} - {% endif %} - - {% comment %} Replace an ampersand by 'and' {% endcomment %} - {% if _splitFilename.first == "&" %} - {% assign filename = filename | replace_first: "&", "and-" %} - {% endif %} - {% if _splitFilename.last == "&" %} - {% assign _filenameLenMin1 = filename | size | minus: 1 %} - {% assign filename = filename | slice: 0, _filenameLenMin1 | append: "-and" %} - {% endif %} - {% assign filename = filename | downcase %} {% assign filename = filename | replace: "à", "a" | replace: "á", "a" | replace: "â", "a" | replace: "ã", "a" | replace: "ä", "a" | replace: "ā", "a" | replace: "ă", "a" | replace: "ą", "a" %} {% assign filename = filename | replace: "ç", "c" | replace: "ć", "c" | replace: "ĉ", "c" | replace: "ċ", "c" | replace: "č", "c" %} @@ -52,8 +33,8 @@ {% assign searchTerm = filename %} {% assign filename = filename | replace: "+", "plus" %} - {% assign filename = filename | replace: ".", "-dot-" %} - {% assign filename = filename | replace: "&", "-and-" %} + {% assign filename = filename | replace: ".", "dot" %} + {% assign filename = filename | replace: "&", "and" %} {% assign filename = filename | replace: " ", "" | replace: "_", "" | replace: "!", "" | replace: ":", "" | replace: "’", "" | replace: "'", "" | replace: "°", "" %} {% if icon.slug %} {% assign filename = icon.slug %} diff --git a/scripts/utils.js b/scripts/utils.js index 9d3db832..b7eb0da3 100644 --- a/scripts/utils.js +++ b/scripts/utils.js @@ -17,12 +17,8 @@ module.exports = { titleToSlug: title => ( title.toLowerCase() .replace(/\+/g, "plus") - .replace(/^\./, "dot-") - .replace(/\.$/, "-dot") - .replace(/\./g, "-dot-") - .replace(/^&/, "and-") - .replace(/&$/, "-and") - .replace(/&/g, "-and-") + .replace(/\./g, "dot") + .replace(/&/g, "and") .replace(/đ/g, "d") .replace(/ħ/g, "h") .replace(/ı/g, "i") @@ -32,8 +28,7 @@ module.exports = { .replace(/ß/g, "ss") .replace(/ŧ/g, "t") .normalize("NFD") - .replace(/[\u0300-\u036f]/g, "") - .replace(/[^a-z0-9\-]/g, "") + .replace(/[^a-z0-9]/g, "") ), /**