From b99980fda1afcb12df5316337fb0b869a65b550e Mon Sep 17 00:00:00 2001 From: Baptiste Augrain Date: Sun, 16 Dec 2018 19:38:04 +0100 Subject: [PATCH] improve slug by replacing diacritics and removing unwanted characters --- browser/lib/slugify.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/browser/lib/slugify.js b/browser/lib/slugify.js index 0ff21245..3b6386de 100644 --- a/browser/lib/slugify.js +++ b/browser/lib/slugify.js @@ -1,6 +1,17 @@ -module.exports = function slugify (title) { - return encodeURI(title.trim() - .replace(/[\]\[\!\"\#\$\%\&\'\(\)\*\+\,\.\/\:\;\<\=\>\?\@\\\^\_\{\|\}\~]/g, '') - .replace(/\s+/g, '-')) - .replace(/\-+$/, '') +import diacritics from 'diacritics-map' + +function replaceDiacritics(str) { + return str.replace(/[À-ž]/g, function(ch) { + return diacritics[ch] || ch; + }); +} + +module.exports = function slugify (title) { + let slug = title.trim() + + slug = replaceDiacritics(slug) + + slug = slug.replace(/[^\w\s-]/g, '').replace(/\s+/g, '-') + + return encodeURI(slug).replace(/\-+$/, '') }