mirror of
https://github.com/Mibew/simple-icons.git
synced 2024-11-16 02:14:12 +03:00
8431fd9683
* 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
50 lines
1.3 KiB
JavaScript
50 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(/^\./, "dot-")
|
||
.replace(/\.$/, "-dot")
|
||
.replace(/\./g, "-dot-")
|
||
.replace(/^&/, "and-")
|
||
.replace(/&$/, "-and")
|
||
.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(/[\u0300-\u036f]/g, "")
|
||
.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(/'/g, "’")
|
||
.replace(/&/g, "&")
|
||
),
|
||
}
|