generify slugify method

This commit is contained in:
2023-10-11 20:36:57 +10:30
parent 3f2e659778
commit 8167cbcfdd

View File

@ -12,18 +12,7 @@ module.exports = function (eleventyConfig) {
eleventyConfig.addPassthroughCopy("./src/_assets/js"); eleventyConfig.addPassthroughCopy("./src/_assets/js");
eleventyConfig.addShortcode("albumtile", function (title, embedLink, coverImage) { eleventyConfig.addShortcode("albumtile", function (title, embedLink, coverImage) {
// hugely overcomplicated universal slug method var slug = slugify(title);
var slug = title
.toLowerCase()
.trim()
// remove accents
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
// replace invalid characters with spaces
.replace(/[^a-z0-9\s-]/g, ' ')
.trim()
// replace multiple spaces or hyphens with a hyphen
.replace(/[\s-]+/g, '-');
return `<div> return `<div>
<a class="hide" href="${embedLink}" target="${slug}"> <a class="hide" href="${embedLink}" target="${slug}">
@ -43,17 +32,7 @@ module.exports = function (eleventyConfig) {
var linkString = ""; var linkString = "";
var videoString = ""; var videoString = "";
var slug = title var slug = slugify(title);
.toLowerCase()
.trim()
// remove accents
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
// replace invalid characters with spaces
.replace(/[^a-z0-9\s-]/g, ' ')
.trim()
// replace multiple spaces or hyphens with a hyphen
.replace(/[\s-]+/g, '-');
if (Array.isArray(link)) { if (Array.isArray(link)) {
if (typeof link[0] === 'string') { if (typeof link[0] === 'string') {
@ -172,3 +151,17 @@ module.exports = function (eleventyConfig) {
}, },
}; };
}; };
var slugify = function (preSlug) {
return preSlug
.toLowerCase()
.trim()
// remove accents
.normalize('NFD')
.replace(/[\u0300-\u036f]/g, '')
// replace invalid characters with spaces
.replace(/[^a-z0-9\s-]/g, ' ')
.trim()
// replace multiple spaces or hyphens with a hyphen
.replace(/[\s-]+/g, '-');
}