From 52ecb14b0ff760d2a30889a8615e128be126241a Mon Sep 17 00:00:00 2001 From: Oliver Eyton-Williams Date: Fri, 3 Jul 2020 16:58:53 +0200 Subject: [PATCH] fix: replace . with - in slugs (#39168) --- utils/slugs.js | 2 +- utils/slugs.test.js | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/utils/slugs.js b/utils/slugs.js index 6154e415a8..85fe8ff9c3 100644 --- a/utils/slugs.js +++ b/utils/slugs.js @@ -2,7 +2,7 @@ exports.dasherize = function dasherize(name) { return ('' + name) .toLowerCase() .trim() - .replace(/\s/g, '-') + .replace(/\s|\./g, '-') .replace(/[^a-z\d\-.]/g, ''); }; diff --git a/utils/slugs.test.js b/utils/slugs.test.js index 81a37ab0cd..bf5ab6d160 100644 --- a/utils/slugs.test.js +++ b/utils/slugs.test.js @@ -14,12 +14,16 @@ describe('dasherize', () => { expect(dasherize('the space between')).toBe('the-space--between'); }); + it('converts dots to dashes', () => { + expect(dasherize('the..dots.. between')).toBe('the--dots---between'); + }); + it('trims off surrounding whitespace', () => { expect(dasherize(' the space between ')).toBe('the-space--between'); }); - it('removes everything except letters, numbers, - and .', () => { - expect(dasherize('1a!"£$%^*()_+=-.b2')).toBe('1a-.b2'); + it('removes everything except letters, numbers and -', () => { + expect(dasherize('1a!"£$%^*()_+=-.b2')).toBe('1a--b2'); }); });