/** * URL-/Dateiname-taugliches Kuerzel aus beliebigem Text: klein geschrieben, deutsche * Umlaute ausgeschrieben (ä→ae, ö→oe, ü→ue, ß→ss), Akzente entfernt, Apostrophe entfernt, * alles ausser a-z/0-9/- wird zu einem einzelnen '-', Rand-Bindestriche entfernt, auf * 100 Zeichen gekuerzt. Kein Text (z. B. null/undefined) ergibt ''. */ export function slugify(value) { const input = value === null || value === undefined ? '' : String(value) return input .toLowerCase() .replace(/ä/g, 'ae') .replace(/ö/g, 'oe') .replace(/ü/g, 'ue') .replace(/ß/g, 'ss') .normalize('NFD') .replace(/\p{M}/gu, '') .replace(/['’‘`]/g, '') .replace(/[^a-z0-9-]+/g, '-') .replace(/^-+|-+$/g, '') .slice(0, 100) }