31 lines
495 B
JavaScript
31 lines
495 B
JavaScript
function slugify(input = "") {
|
||
const map = {
|
||
ç: "c",
|
||
Ç: "c",
|
||
ğ: "g",
|
||
Ğ: "g",
|
||
ı: "i",
|
||
I: "i",
|
||
İ: "i",
|
||
ö: "o",
|
||
Ö: "o",
|
||
ş: "s",
|
||
Ş: "s",
|
||
ü: "u",
|
||
Ü: "u",
|
||
}
|
||
|
||
const normalized = String(input || "")
|
||
.split("")
|
||
.map((ch) => (map[ch] ? map[ch] : ch))
|
||
.join("")
|
||
.toLowerCase()
|
||
|
||
return normalized
|
||
.replace(/[^a-z0-9]+/g, "-")
|
||
.replace(/^-+|-+$/g, "")
|
||
.replace(/-{2,}/g, "-")
|
||
}
|
||
|
||
module.exports = { slugify }
|