diff --git a/src/core/render/tpl.js b/src/core/render/tpl.js
index 2bad3a311..595cdff76 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 3a82a0f9d..5d556168f 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(
+ ``
+ );
+ });
+});