2021-02-08 19:14:31 +03:00
|
|
|
|
/**
|
|
|
|
|
* @fileoverview
|
|
|
|
|
* Some common utilities for scripts.
|
|
|
|
|
*/
|
|
|
|
|
|
2018-08-27 00:23:57 +03:00
|
|
|
|
module.exports = {
|
2021-02-22 16:15:37 +03:00
|
|
|
|
/**
|
|
|
|
|
* 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),
|
|
|
|
|
|
2021-02-08 19:14:31 +03:00
|
|
|
|
/**
|
|
|
|
|
* Converts a brand title into a slug/filename.
|
|
|
|
|
* @param {String} title The title to convert
|
|
|
|
|
*/
|
|
|
|
|
titleToSlug: title => (
|
|
|
|
|
title.toLowerCase()
|
|
|
|
|
.replace(/\+/g, "plus")
|
2021-05-05 13:22:54 +03:00
|
|
|
|
.replace(/\./g, "dot")
|
|
|
|
|
.replace(/&/g, "and")
|
2021-02-08 19:14:31 +03:00
|
|
|
|
.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")
|
2021-05-05 13:22:54 +03:00
|
|
|
|
.replace(/[^a-z0-9]/g, "")
|
2021-02-08 19:14:31 +03:00
|
|
|
|
),
|
2019-07-04 00:33:03 +03:00
|
|
|
|
|
2021-02-08 19:14:31 +03:00
|
|
|
|
/**
|
|
|
|
|
* 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 => (
|
2021-10-02 17:46:07 +03:00
|
|
|
|
htmlFriendlyTitle.replace(
|
|
|
|
|
/&#([0-9]+);/g,
|
|
|
|
|
(_, num) => String.fromCharCode(parseInt(num))
|
|
|
|
|
).replace(
|
|
|
|
|
/&(quot|amp|lt|gt);/g,
|
|
|
|
|
(_, ref) => ({quot: '"', amp: '&', lt: '<', gt: '>'}[ref])
|
|
|
|
|
)
|
2021-02-08 19:14:31 +03:00
|
|
|
|
),
|
2019-04-17 12:59:44 +03:00
|
|
|
|
}
|