From 8ccc20225104376af2e5df6757c4dbd58c0e758e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=B2=88=E5=94=81?= <52o@qq52o.cn>
Date: Mon, 23 Nov 2020 06:23:36 +0800
Subject: [PATCH] fix: title error when sidebar link exists with html tag
(#1404)
* fix: title error when sidebar link exists with image
* fix #1408
* add test
* Update
---
src/core/render/tpl.js | 3 ++-
test/unit/render-util.test.js | 28 ++++++++++++++++++++++++++++
2 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/src/core/render/tpl.js b/src/core/render/tpl.js
index 2bad3a31..595cdff7 100644
--- a/src/core/render/tpl.js
+++ b/src/core/render/tpl.js
@@ -91,7 +91,8 @@ export function tree(toc, tpl = '
') {
let innerHTML = '';
toc.forEach(node => {
- innerHTML += `${node.title}`;
+ 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 3a82a0f9..5d556168 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,30 @@ describe('core/render/utils', () => {
});
});
});
+
+describe('core/render/tpl', () => {
+ 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:
+ '
Test',
+ },
+ ]);
+
+ expect(result).toEqual(
+ ``
+ );
+ });
+});