From 8aeaf89ae9fcdf169e13261fc6a1a55ca98704eb Mon Sep 17 00:00:00 2001 From: sy-records <52o@qq52o.cn> Date: Tue, 20 Oct 2020 09:20:45 +0800 Subject: [PATCH 1/4] fix: title error when sidebar link exists with image --- src/core/render/tpl.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/core/render/tpl.js b/src/core/render/tpl.js index 2bad3a311..1aa4647e0 100644 --- a/src/core/render/tpl.js +++ b/src/core/render/tpl.js @@ -90,8 +90,10 @@ export function tree(toc, tpl = '') { } let innerHTML = ''; + let title = ''; toc.forEach(node => { - innerHTML += `
  • ${node.title}
  • `; + title = node.title.replace(/(<\/?img.*?>)/g, ''); + innerHTML += `
  • ${node.title}
  • `; if (node.children) { innerHTML += tree(node.children, tpl); } From 791f1b629e5c65736300993c60fbae0daffa0928 Mon Sep 17 00:00:00 2001 From: sy-records <52o@qq52o.cn> Date: Mon, 26 Oct 2020 12:03:25 +0800 Subject: [PATCH 2/4] fix #1408 --- src/core/render/tpl.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/render/tpl.js b/src/core/render/tpl.js index 1aa4647e0..91f990feb 100644 --- a/src/core/render/tpl.js +++ b/src/core/render/tpl.js @@ -92,7 +92,7 @@ export function tree(toc, tpl = '') { let innerHTML = ''; let title = ''; toc.forEach(node => { - title = node.title.replace(/(<\/?img.*?>)/g, ''); + title = node.title.replace(/(<([^>]+)>)/g, ''); innerHTML += `
  • ${node.title}
  • `; if (node.children) { innerHTML += tree(node.children, tpl); From 9810960806d07d731bb8a1550d7605c9f29ca790 Mon Sep 17 00:00:00 2001 From: sy-records <52o@qq52o.cn> Date: Mon, 26 Oct 2020 14:17:37 +0800 Subject: [PATCH 3/4] add test --- test/unit/render-util.test.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/test/unit/render-util.test.js b/test/unit/render-util.test.js index 3a82a0f9d..be4897879 100644 --- a/test/unit/render-util.test.js +++ b/test/unit/render-util.test.js @@ -1,4 +1,5 @@ const { removeAtag } = require(`${SRC_PATH}/core/render/utils`); +const { tree } = require(`${SRC_PATH}/core/render/tpl`); // Suite // ----------------------------------------------------------------------------- @@ -13,3 +14,32 @@ describe('core/render/utils', () => { }); }); }); + +describe('core/render/tpl', () => { + describe('remove html tag in tree', () => { + test('remove span and img', () => { + const result = tree([ + { + level: 2, + slug: '#/cover?id=basic-usage', + title: 'Basic usage', + }, + { + level: 2, + slug: '#/cover?id=custom-background', + title: 'Custom background', + }, + { + level: 2, + slug: '#/cover?id=test', + title: + 'icoTest', + }, + ]); + + expect(result).toEqual( + `` + ); + }); + }); +}); From 6385b7fa45f6397ec866993086248cf1260c3779 Mon Sep 17 00:00:00 2001 From: sy-records <52o@qq52o.cn> Date: Sat, 21 Nov 2020 09:05:49 +0800 Subject: [PATCH 4/4] Update --- src/core/render/tpl.js | 3 +-- test/unit/render-util.test.js | 46 +++++++++++++++++------------------ 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/src/core/render/tpl.js b/src/core/render/tpl.js index 91f990feb..595cdff76 100644 --- a/src/core/render/tpl.js +++ b/src/core/render/tpl.js @@ -90,9 +90,8 @@ export function tree(toc, tpl = '') { } let innerHTML = ''; - let title = ''; toc.forEach(node => { - title = node.title.replace(/(<([^>]+)>)/g, ''); + const title = node.title.replace(/(<([^>]+)>)/g, ''); innerHTML += `
  • ${node.title}
  • `; if (node.children) { innerHTML += tree(node.children, tpl); diff --git a/test/unit/render-util.test.js b/test/unit/render-util.test.js index be4897879..5d556168f 100644 --- a/test/unit/render-util.test.js +++ b/test/unit/render-util.test.js @@ -16,30 +16,28 @@ describe('core/render/utils', () => { }); describe('core/render/tpl', () => { - describe('remove html tag in tree', () => { - test('remove span and img', () => { - const result = tree([ - { - level: 2, - slug: '#/cover?id=basic-usage', - title: 'Basic usage', - }, - { - level: 2, - slug: '#/cover?id=custom-background', - title: 'Custom background', - }, - { - level: 2, - slug: '#/cover?id=test', - title: - 'icoTest', - }, - ]); + test('remove html tag in tree', () => { + const result = tree([ + { + level: 2, + slug: '#/cover?id=basic-usage', + title: 'Basic usage', + }, + { + level: 2, + slug: '#/cover?id=custom-background', + title: 'Custom background', + }, + { + level: 2, + slug: '#/cover?id=test', + title: + 'icoTest', + }, + ]); - expect(result).toEqual( - `` - ); - }); + expect(result).toEqual( + `` + ); }); });