diff --git a/.npmignore b/.npmignore index 6be3879e9..cffece27b 100644 --- a/.npmignore +++ b/.npmignore @@ -5,4 +5,5 @@ !icons/ !package.json !README.md -!LICENSE.md \ No newline at end of file +!LICENSE.md +!index.js diff --git a/README.md b/README.md index c422f85bc..94c459641 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,32 @@ # Simple Icons -Free SVG icons for popular brands, started by [Dan Leech](https://twitter.com/bathtype). [See them all on one page at **simpleicons.org**](https://simpleicons.org). Contributions, corrections & requests can be made on GitHub. +Free SVG icons for popular brands, started by [Dan Leech](https://twitter.com/bathtype). [See them all on one page at **simpleicons.org**](https://simpleicons.org). Contributions, corrections & requests can be made on GitHub. -## To do +## Usage -- [ ] Analytics tracking for icon clicks -- [ ] New README.md +Icons can be downloaded as SVGs directly from [our website](https://simpleicons.org/) - simply click the icon you want, and the download should start automatically. + +### Node Usage + +The icons are also available through our npm package. To install, simply run: + +``` +$ npm install simple-icons +``` + +The API can then be used as follows: + +```javascript +const simpleIcons = require('simple-icons'); + +console.log(simpleIcons['Google+']); + +/* +{ + title: 'Google+', + hex: 'DC4E41', + source: 'https://developers.google.com/+/branding-guidelines', + svg: '...' +} +*/ +``` diff --git a/example.js b/example.js deleted file mode 100644 index f4aeafeb6..000000000 --- a/example.js +++ /dev/null @@ -1,11 +0,0 @@ -const SimpleIcons = require('./'); - -console.log(SimpleIcons['500px'].svg); - -/* -{ title: '500px', - hex: '0099E5', - source: 'https://about.500px.com/press', - name: '500px', - svg: '...' } -*/ diff --git a/index.js b/index.js index 5d3fbb9cf..95ca27f3d 100644 --- a/index.js +++ b/index.js @@ -2,12 +2,14 @@ const dataFile = './_data/simple-icons.json'; const data = require(dataFile); const fs = require('fs'); -let Icons = {}; +const icons = {}; data.icons.forEach(i => { - i.name = i.title.toLowerCase().replace(/[^a-z0-9]/gim, ''); - i.svg = fs.readFileSync(`./icons/${i.name}.svg`, 'utf8'); - Icons[i.name] = i + const filename = i.title.toLowerCase() + .replace(/\+/g, "plus") + .replace(/[ .\-!’]/g, ''); + i.svg = fs.readFileSync(`./icons/${filename}.svg`, 'utf8'); + icons[i.title] = i }); -module.exports = Icons; +module.exports = icons;