mirror of
https://github.com/Mibew/simple-icons.git
synced 2024-11-17 19:04:13 +03:00
e0df400494
* Add prettier as a dependency * Add format command and configure prettier I opted for single quotes to be in line with other simple-icons projects I ignore the data file because changing its formatting is quite a bit of trouble for all open PRs. * Run prettier * Replace all functions by arrow functions * Move prettier configuration to config file Move it to a file so editors (and other software) can pick up on the configuration. I went with .js because (a) it allows for comments and (2) it seems most of the config files are in JavaScript already. * Add prettier --check when running npm run lint (This adds it to the CI as well) * Add husky and format changes before committing * Use object destructuring for imports consistently * Add shebang and fileoverview to jsonlint.js
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
/**
|
||
* @fileoverview
|
||
* Some common utilities for scripts.
|
||
*/
|
||
|
||
module.exports = {
|
||
/**
|
||
* Get the slug/filename for an icon.
|
||
* @param {Object} icon The icon data as it appears in _data/simple-icons.json
|
||
*/
|
||
getIconSlug: (icon) => icon.slug || module.exports.titleToSlug(icon.title),
|
||
|
||
/**
|
||
* Converts a brand title into a slug/filename.
|
||
* @param {String} title The title to convert
|
||
*/
|
||
titleToSlug: (title) =>
|
||
title
|
||
.toLowerCase()
|
||
.replace(/\+/g, 'plus')
|
||
.replace(/\./g, 'dot')
|
||
.replace(/&/g, 'and')
|
||
.replace(/đ/g, 'd')
|
||
.replace(/ħ/g, 'h')
|
||
.replace(/ı/g, 'i')
|
||
.replace(/ĸ/g, 'k')
|
||
.replace(/ŀ/g, 'l')
|
||
.replace(/ł/g, 'l')
|
||
.replace(/ß/g, 'ss')
|
||
.replace(/ŧ/g, 't')
|
||
.normalize('NFD')
|
||
.replace(/[^a-z0-9]/g, ''),
|
||
|
||
/**
|
||
* Converts a brand title in HTML/SVG friendly format into a brand title (as
|
||
* it is seen in simple-icons.json)
|
||
* @param {String} htmlFriendlyTitle The title to convert
|
||
*/
|
||
htmlFriendlyToTitle: (htmlFriendlyTitle) =>
|
||
htmlFriendlyTitle
|
||
.replace(/&#([0-9]+);/g, (_, num) => String.fromCharCode(parseInt(num)))
|
||
.replace(
|
||
/&(quot|amp|lt|gt);/g,
|
||
(_, ref) => ({ quot: '"', amp: '&', lt: '<', gt: '>' }[ref]),
|
||
),
|
||
};
|