From 06d632b559eb04e67c361fd08132adbfa850e99f Mon Sep 17 00:00:00 2001 From: Alexandru Cambose Date: Sat, 16 Feb 2019 22:27:11 +0200 Subject: [PATCH 1/2] Added filtering in sidebar for ignoreSubHeading --- src/core/render/compiler.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/render/compiler.js b/src/core/render/compiler.js index 91b954c02..e2147fc9c 100644 --- a/src/core/render/compiler.js +++ b/src/core/render/compiler.js @@ -329,13 +329,17 @@ export class Compiler { * Compile sidebar */ sidebar(text, level) { + const {toc} = this const currentPath = this.router.getCurrentPath() let html = '' if (text) { html = this.compile(text) } else { - const tree = this.cacheTree[currentPath] || genTree(this.toc, level) + for (let i = 0; i < toc.length; i++) { + toc[i].ignoreSubHeading && toc.splice(i, 1) && i-- + } + const tree = this.cacheTree[currentPath] || genTree(toc, level) html = treeTpl(tree, '') this.cacheTree[currentPath] = tree } @@ -360,7 +364,6 @@ export class Compiler { for (let i = 0; i < toc.length; i++) { toc[i].ignoreSubHeading && toc.splice(i, 1) && i-- } - const tree = cacheTree[currentPath] || genTree(toc, level) cacheTree[currentPath] = tree From fd82f3dfce22969bd0bb93449b80fc90374ac1b5 Mon Sep 17 00:00:00 2001 From: Alexandru Cambose Date: Sat, 16 Feb 2019 23:19:49 +0200 Subject: [PATCH 2/2] Updated to remove all headers under it --- src/core/render/compiler.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/core/render/compiler.js b/src/core/render/compiler.js index e2147fc9c..354b6a920 100644 --- a/src/core/render/compiler.js +++ b/src/core/render/compiler.js @@ -337,7 +337,15 @@ export class Compiler { html = this.compile(text) } else { for (let i = 0; i < toc.length; i++) { - toc[i].ignoreSubHeading && toc.splice(i, 1) && i-- + if (toc[i].ignoreSubHeading) { + const deletedHeaderLevel = toc[i].level + toc.splice(i, 1) + // Remove headers who are under current header + for (let j = i; deletedHeaderLevel < toc[j].level && j < toc.length; j++) { + toc.splice(j, 1) && j-- && i++ + } + i-- + } } const tree = this.cacheTree[currentPath] || genTree(toc, level) html = treeTpl(tree, '')