From 76c5e685d75ee6df9acc0a7cf92d5daa138c3240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=88=E5=94=81?= <52o@qq52o.cn> Date: Fri, 18 Dec 2020 08:09:33 +0800 Subject: [PATCH] fix: slugs are still broken when headings contain html (#1443) --- src/core/render/slugify.js | 2 +- test/unit/render-util.test.js | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/core/render/slugify.js b/src/core/render/slugify.js index 1d3c24b30..be3d943e2 100644 --- a/src/core/render/slugify.js +++ b/src/core/render/slugify.js @@ -15,7 +15,7 @@ export function slugify(str) { let slug = str .trim() .replace(/[A-Z]+/g, lower) - .replace(/<[^>\d]+>/g, '') + .replace(/<[^>]+>/g, '') .replace(re, '') .replace(/\s/g, '-') .replace(/-+/g, '-') diff --git a/test/unit/render-util.test.js b/test/unit/render-util.test.js index 93f2a5acc..1f6996c2a 100644 --- a/test/unit/render-util.test.js +++ b/test/unit/render-util.test.js @@ -2,6 +2,8 @@ const { removeAtag } = require('../../src/core/render/utils'); const { tree } = require(`../../src/core/render/tpl`); +const { slugify } = require(`../../src/core/render/slugify`); + // Suite // ----------------------------------------------------------------------------- describe('core/render/utils', () => { @@ -42,3 +44,16 @@ describe('core/render/tpl', () => { ); }); }); + +describe('core/render/slugify', () => { + test('slugify()', () => { + const result = slugify( + `Bla bla bla ` + ); + const result2 = slugify( + `Another broken example` + ); + expect(result).toEqual(`bla-bla-bla-`); + expect(result2).toEqual(`another-broken-example`); + }); +});