Commit graph

42 commits

Author SHA1 Message Date
Eric Cornelissen 153a029c25
Restructure the scripts/ directory (#5546)
* Restructure scripts/ directory

And update references to this scripts everywhere.

* Update names of file-level constants in bump-version.js

* Normalize quotes between all scripts

* Move "create-release.yml" scripts to scripts/release

* Move slugs table script to scripts/release

* Update relative path logic in update-slugs-table.js
2021-05-07 19:55:06 +02:00
Eric Cornelissen e049e1d5a5
Auto update CDN URLs in README.md in release PR (#5545)
* Add script to bump major version in README

On lines 29-32, we could alternatively use `replaceAll`, I opted not to
as it is not yet(?) part of an LTS release of NodeJS.

* Bump CDN version in README automatically for new releases

* Rename "bump-cdn-version.js" to "update-cdn-urls.js"

* Update names of file-level constants in update-cdn-urls.js

* Rename workflow setp for updating CDN URLs

* Rename packageJsonFile constant in update-cdn-urls

* Remove semver dependency

* Generalize update-cdn-urls script
2021-05-05 23:29:49 +02:00
Peter Noble ead1170a2f
Disallow Hyphens in File Names (#5121) 2021-05-05 11:22:54 +01:00
Eric Cornelissen 6c435fe741 Require Sorting by Slug (#5115)
#   Fix indentation of format function.
 #   Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>

 #   Update formatting in scripts/lint.js
 #   Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>
 #   Fix Handshake order
 #   Require Sorting by Slug
2021-04-16 18:05:44 +02:00
Álvaro Mondéjar 92006ed23e
Remove '.html' extension for SPDX license urls (#5412) 2021-04-15 17:33:25 +01:00
Eric Cornelissen 9fdbb57ccc
Add guidelines data to NPM package and documenation (#5342) 2021-03-26 09:33:04 +00:00
Eric Cornelissen 52a0c5b07b
Document slugs of brands (#5002) 2021-03-03 10:57:33 +00:00
Eric Cornelissen 95109ad629
Add license data to NPM package and documenation (#5106) 2021-03-02 12:01:31 +00:00
Eric Cornelissen 8431fd9683
Simplify how scripts get icon slugs (#5066)
* Accept icon rather than title in `iconToSlug`

This removes the need in (most of the) calls to this function to
seperately check if there is a custom slug already defined for the icon.

* Rename `titleToSlug` to `getIconSlug`

* Revert unnecessary style change

* Update function documentation

* Keep `titleToSlug` and add `getIconSlug` helper

Unfortunately `this` is not available because we're using arrow syntax
for these functions, but refering to `titleToSlug` through
`module.exports` works fine as well.

* Fix parameter name in `getIconSlug` docs
2021-02-22 14:15:37 +01:00
Eric Cornelissen 54f9ceff75
Disallow underscores in slugs & filenames (#4921) 2021-02-19 16:16:19 +00:00
Eric Cornelissen 39269e7d39
Add icon license to JSON linting (and change JSON linting dependency) (#4945)
* Add "license" object to the data file JSON schema

* Add license to GNU and GNU social

As an example, based on the discussion in:
https://github.com/simple-icons/simple-icons/issues/1167

* Use `"additionalProperties": false` in JSON schema

... to detect properties in the data file that shouldn't be there.

For more info, see:
https://json-schema.org/understanding-json-schema/reference/object.html

* Update JSON scheme descriptions

* Switch from jsonlint2 to jsonschema

This gives is better support for advanced features of JSON schema.

A couple of clarifications:
- There does exist a jsonschema-cli package, but it is rather limited
  and crucially doens't exit with a non-zero exit code if there is an
  error. (it is also pretty old and not maintained), hence the custom
  script.
- I renamed .jsonlintschema 1) for clarity (lint is no longer accurate)
  and 2) the .json extension allows easy imorting in the script and 3)
  it adds syntax highlighting.
- The script outputs the number of errors in the end because the output
  gets pretty big pretty quickly, this way you can see it easily from
  your CLI.
- We could customize how the errors are logged, but I feel that is
  beyond this PR.

* Two minor changes

* Use `oneOf` to require URL for custom licenses

The updated configuration allows the `"license"` field to be either
1) a SPDX license, optional with a URL
2) a "custom" license with a required URL

Read more about the "oneOf" feature of jsonschema at:
https://json-schema.org/understanding-json-schema/reference/combining.html#oneof

* Include license field in Contributing Guidelines
2021-02-19 15:19:22 +01:00
Eric Cornelissen 9c029bc706
Allow custom slugs (#4918) 2021-02-19 13:06:43 +00:00
Eric Cornelissen 8ecfcafeba
Refactor scripts in scripts/ (#4931)
- Rename `titleToFilename` to `titleToSlug`
- Fix indentation where necessary
- Use quotes internally consistently (to reduce the diff size, unfortunately this is the opposite quote from what we use in other projects)
- Update comments & documentation
- Construct file paths

And more...
2021-02-08 17:14:31 +01:00
Peter Noble b9d229ff69
Add more characters to normalisation scripts (#4833)
* Update normalisation scripts

* Replace ß in index.html

Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>
2021-02-03 00:06:49 +01:00
Eric Cornelissen a4ca74602f
Minor improvements (#4708)
* Remove .travis.yml reference from .gitattributes

* Minor refactoring of .svglintrc.js

- Remove unused variables
- Fix missing semi-colons
- Remove unneeded indentation

* Prevent error in clean command due to missing files

* Fix indentations

* Further improvements to Editorconfig and indentation

* Format YAML files

- Update indentation for array notation
- Normalize use of newlines
2021-01-15 21:47:00 +01:00
Peter Noble 41e7601a38
Remove Degree Symbol in Filenames (#4638) 2021-01-06 11:03:48 -05:00
Álvaro Mondéjar f6bd00315a
Optimize package getter (#4356)
Remove redundant truthy check for properties of icons in index.js

We test if all icon scan be retrieved anyway, if any icon is missing these properties we would find out during testing.
2020-12-14 16:37:15 +01:00
Álvaro Mondéjar 45583efadd
Add lint to check JSON data file prettification (#4320)
* Add test for check JSON data file prettification

* Move prettification test to out linting script

* Add other newline in error message to improve readability

* Invert the diff to show the solution to the user

* Add 'jest-diff' as direct dependency

* Remove annotations and colors

* Replace CRLF newlines with LFs in JSON prettification lint

* Restore colors in JSON prettification lint
2020-12-13 21:17:41 +01:00
Eric Cornelissen 7fb4ff6395
Fix low severity issues in the JavaScript (#3342) 2020-07-28 11:33:40 +01:00
Eric Cornelissen 412ccc0a6d
Escape icon title for object key (#2710) 2020-03-02 10:49:56 +00:00
Eric Cornelissen 7ebf7f71fa
Add documentation and tooling for SVG filenames (#2601)
* Create simple CLI tool to get the filename from a brandname

https://github.com/simple-icons/simple-icons/pull/2589#issuecomment-585902427

* Update contributing guidelines on new SVGs' filenames

* Fix incorrect filename in package.json script

* Add file header to get-filename script

* Update contributing guidelines' section on SVG filenames

Co-Authored-By: YoussefRaafatNasry <youssefraafatnasry@gmail.com>
2020-02-26 17:54:54 +01:00
Peter Noble 1afbec2d84
Additional Replacements for Filenames (#2625)
* Strip colons from filenames

* Add global matching for accented characters

* Add more replacements

* Added more diacritics

Namely: č,ć, ň, ń, ś, ž, ź

Co-authored-by: Lucas Becker <runxel@users.noreply.github.com>
2020-02-21 11:01:41 +00:00
Johan Fagerberg 7b69d16efb Add CI step for ensuring alphabetical order of icons (#2334)
* Add a script for the linting that cannot be accomplished by our other linters

Currently this only contains linting for whether our icons are alphabetically sorted

* Add our own linting to Travis

* Fix Let's Encrypt being incorrectly sorted

* Intentionally break sorting to test CI

* Revert "Intentionally break sorting to test CI"

This reverts commit 55e4070b3c.

* Explain in CONTRIBUTION.md how to sort metadata
2020-01-16 12:40:46 +02:00
Eric Cornelissen 93425f8aa0 No longer require no final newline in SVGs (#1682)
* Introduce newline into a SVG

for testing purposes

* Remove potential newlines from SVGs when building the package

* Don't lint SVG files

... so it is neither required to have, or not have, a final newline

* Remove both Windows and Unix style newlines in build script

* Rever 3372ca3
2019-09-30 18:34:42 +02:00
Eric Cornelissen 87ab9c43a7 Refactor prepublish script to use template file for icon objects (#1547)
* Refactor prepublish script to use template file for icon objects

... to hopefully increase readability

* Fix build and test issues

* Add missing semi-colon

* Explicitly check for errors when writing individual static .js files
2019-08-15 13:23:35 +02:00
Eric Cornelissen ddc3fe09d4 Fix name of "enumerable" property in Object.defineProperty
As discussed in https://github.com/simple-icons/simple-icons/pull/1555
2019-07-25 23:27:15 +01:00
Eric Cornelissen b1b2f339b8 Don't enumerate the get method (#1555)
* Test that all elements when iterating simpleIcons are objects

* Refactor index template to hide .get method from enumeration
2019-07-24 21:17:46 +02:00
Eric Cornelissen 11cdbd7073 Add a "build" and "clean" NPM script (#1548) 2019-07-22 09:58:51 -07:00
Eric Cornelissen 77b4be945d Add error logging to prepublish script 2019-07-21 19:46:37 +01:00
Eric Cornelissen 7672bfb2db Reduce package size by replacing JSON.stringify (#1519)
* Reduce package size by replacing JSON.stringify by custom stringify func

* Escape icon's title and SVG value

... as pointed out by @birjolaxew, if they contain a "'" it will break 
the resulting object.
2019-07-14 21:15:26 +02:00
Eric Cornelissen c6a9346985 Generic get icon function for easier access to brands with "difficult" names (#1522)
* Add URL friendy/slug/file name as property to package icon objects

* Test new property

* Build index from template

* Add .get function to index.js export

* Test new .get function in index.js export

* Use Uglify-JS to minify the code in the package's index.js

* Update API in README.md

* Renaem test using "slug" instead of "name"
2019-07-14 21:05:38 +02:00
Eric Cornelissen 9ebc626ab5 Add URL friendy/slugged name as property to package icon objects (#1520)
* Add URL friendy/slug/file name as property to package icon objects

* Test new property

* Add 'name' property to examples in README

* Rename "name" property to "slug"
2019-07-14 20:09:34 +02:00
Eric Cornelissen 39b8fdfa85 Reduce impact of path value on package size (#1521)
* Reduce package size by replacing JSON.stringify by custom stringify func

* Replace path data by getter

* Replace getter by Object.defineProperty

* Remove icon.path definition

* Revert 801c07d4

Apperantly getters have better support then Objct.defineProperty...
2019-07-14 17:07:24 +02:00
Eric Cornelissen 287317b7b6 Lint the SVG's title content (#1508)
* Add custom SVGLint rule to lint the general <title> format

i.e. the <title> should be "[ICON_NAME] icon"

* Check if there exists an entry in simple-icons.json with the icon name

... found in the <title>

* Normalize all icons <title> value

* Fix mismatch between HTML's icon title and simple-icons.json title

... due to HTML special entities (such as `&amp;`). Affected icons:

- AT&T (AT&amp;T)
- Let's Encrypt (Let&apos;s Encrypt)

* Refactor .svglintrc.js

to make the code style more in line with scripts/prepublish.js

* Add SVG with invalid <title> format

* Add SVG with unknown title

* Revert 6912816 and f002504
2019-07-03 23:33:03 +02:00
Eric Cornelissen 01b84bc2c2 Version bump
Bumped the second digit instead of the third to indicate a not backwards 
compatible change: removing the icon named Adobe Lightroom.
2019-06-30 11:55:57 +01:00
Eric Cornelissen 30cd9ecc99 Add "path" key with raw path data to NPM package (#1472)
* Update prepublish script to add path to generated .js files

* Test generated path values

* Fix Furry Network icon

The Furry Network icon used to have "e"s in the path, however the 
official SVG definition does not specify the E command.

source: https://www.w3schools.com/graphics/svg_path.asp
2019-06-15 22:31:23 +02:00
David Klebanoff 1fb7581c55 Handle accented brand names (#1439)
* Handle accented brand names.

* Update order of replacement (alphabetic).
2019-05-28 23:56:20 +02:00
Eric Cornelissen 0794f0186a Add backwards compatability for Adobe Lightroom
Because it was renamed it may result in unexpected errors --> breaking 
changes.

This is a temporary solution to circumvent the problem. This can be 
removed once some other breaking changes are also present and a major 
new version is released. I propose removing this change when 
https://github.com/simple-icons/simple-icons/issues/1362 is implemented
2019-05-03 17:16:52 +03:00
Eric Cornelissen 579d439e60
Lint file formatting (primarily whitespace) (#1349)
* Add editorconfig-checker and .editorconfig

* Fix wslint errors
2019-04-17 12:59:44 +03:00
Aaron Benjamin 038c558fab Add Apple Pay, AT&T, T-Mobile, Sprint, Verizon, Boost, Framer (#973)
* add new icons

- add icon for AT&T
- add icon for T-mobile
- add icon for Sprint
- add icon for Cricket
- add icon for Verizon
- add icon for Boost
- add icon for Framer
- add icon for Sketch
- Update _data/simple-icons.json with new icon data

* remove `<g>` from svg files

- remove `<g>` from svg files to address svglint error

* add apple pay

- Add apple pay
- Update simple-icons.json

* make changes per review

Changes were made based on review 9/9/18.

* fixed AT&T naming
2018-09-11 08:42:29 +02:00
Eric Cornelissen b339df0b61 Update filemapping, ampersand (#977)
* Replace ampersand to avoid problems with filenames

Together with some examples as test

* Revert filename changes for testing purposes
2018-09-10 17:53:59 +02:00
Johan Fagerberg 6ee6ba977c
Add prepublish script (#942)
* Add prepublish script

Compiles icons into both static js files (icons/{filename}.js) and
into a static index.js. The latter is not tree-shakeable.

Closes #941, closes #751

* Add information on tree-shaking to README

* Remove index.js after publishing

* Change 'prepublish' to 'prepublishOnly'

* Link to webpack in README

* Simplify postpublish cleanup

Thanks @ericcornelissen

* Fix quote usage in prepublish.js

* Fix quote usage in utils.js

* Optimized file size of prepublish output

* Improved readability of prepublish script
2018-08-26 23:23:57 +02:00