* 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
* Suggest using "Treeless clone" to contributors
Following a recent GitHub blog post [1], this adds a suggestion to the
Contributing Guidelines to use a "Treeless clone" when cloning this
repository. Since the commit history is generally not super important to
contributors, this can significantly speed up cloning without any real
downside.
--
1. https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/
* Add HTTPS version for cloning the repository
* Add comments and highlighting for cloning snippet
* Add clone instruction for using GitHub CLI
* Increase spacing
* Formalize website Ruby dependencies and installation process
* Improve Contributing Guidelines
* Add Gemfile.lock to .gitattributes
* Use 'ruby/setup-ruby' caching strategy
* Add link to documentation of 'bundler-cache'
* Add lint to check negative zeros in paths
* Bump minimum NodeJS version to test locally to v12.4.0
* Simplify regular expression
* Add resolution tip to error message
* Convert iterator to array directly
* Improve comment
* Remove GodotEngine from lint ignores file
* Improve resolution tip message if previous character is a number
Specify our guidelines on whether or not to include (registered)
trademark symbols in logos as publically discussed.
This also slightly changes the document structure of the Contributing
Guidelines with the goal of making it a little bit easier to find this
new information.
* Add linter to check svg path dimensions
Float precision is set at 3 which is the default for svgo in .svgo.yml;
precision can be raised over time.
This adds an ignore file with the current paths of non-conforming icons.
This also changes the name of the icon title linter as well so it reads
more nicely than "custom".
* Update CONTRIBUTING GUIDELINES
Add a note on visual imperfections and viewbox problems due to
optimizing.
Co-authored-by: Eric Cornelisesn <ericornelissen@gmail.com>
Co-authored-by: Peter Noble <PeterShaggyNoble@users.noreply.github.com>
* Add a SVGO Docker image
* Update Dockerfile and .dockerignore
Update the Dockerfile to create a docker image that is generally
applicable to run NPM commands, including but not limited to:
- npm run test
- npm run svgo
- npm run lint
Also updated the .dockerignore file to exclude:
- The node_modules folder
- Common Jekyll folders/files
- Files generated by the build script
The reason for choosing the alpine docker image (rather than a node
docker image) is that the CLI out of the box is better.
* Add section on using Docker to Contributing Guidelines
* Readd entrypoint for SVGO optimization to Dockerfile
Update the Dockerfile based on the original work in
32993385da by re-adding an ENTRYPOINT to
the Dockerfile. This ENTRYPOINT makes it extremely easy to spin up a
quick Docker container to optimize a single SVG (much simpler than my
copy-in -> optimize -> copy-out approach).
The description for how to use the Docker image to run other NPM scripts
has been updated accordingly. The provided command overrides the above
ENTRYPOINT by simple starting a shell so the user can interact with the
project.
Co-authored-by: Eric Cornelisesn <ericornelissen@gmail.com>
* Update CONTRIBUTING.md
- Add note about recating to or commenting on exsiting issues & PRs
- Add request to disclose affiliations to brands in issues & PRs
Co-authored-by: Eric Cornelissen <ericornelissen@gmail.com>
* 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>
* Draft documentation on versioning
* Add "Renamed icons" to kinds of changes for a major release
* Change "Updated icons" to "Updated SVGs" & "Updated metadata" for patch
Given a recent comment on a rejected Pull Request I updated the
Contributing Guidelines to explicitely state that adding a new icon in a
Pull Request (without creating an issue first) is subject to the same
requirements as an icon request by itself.
* 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
* Add SVGO as devDependencies and a NPM script to run it
* Update Contributing Guidelines
Change the instructions on how to use SVGO to optimize SVGs to use the
new dependency and NPM script.
* Add configuration for the NPM command to optimize SVGs
* Specify --precision in SVGO configuration file
* Update SVGO config ordering of attributes
To be in line with the fact that, as @davidklebanoff pointed out: "most
(all?) have the attributes in the order of role, viewbox, xmlns
(alphabetical)"
* Move SVGO --multipass argument to .svgo.yml
* Update SVGO dependency to 1.3.0
Now the force merge option works 🎉
See: https://github.com/svg/svgo/releases/tag/v1.3.0
* Update outdated "blocking" comment
* Remove `id` and `aria-labelledby` from all SVGs
* Update SVGLint configuration
* Remove `aria-labelledby` from documentation
* Remove `aria-labelledby` from website
because why not
* Update contribution guidelines
Adds mention of brand acceptance and popularity threshold
* Update contribution guidelines
As suggested by @ericcornelissen
Add svg-grabber with the "Website headers" option for where you can find brand logos. svg-grabber is a tool (for Google Chrome) which I recently discovered, it quickly shows you all the available SVG files on a website in order. So most of the time the company logo will be listed somewhere at the top. This might make the process of finding the SVG easier for some.