From 9951b7df7c6523838b413700d51930956c467d6a Mon Sep 17 00:00:00 2001 From: Sheogorath Date: Wed, 7 Nov 2018 17:03:45 +0100 Subject: [PATCH] Fix ToC breaking documents with empty h* elements Right now, the ToC has an undefined variable i that was an index in the original ToC code. Since the major rewrite in 4fe062085324c50f2cfa062258559cf31858ef5f it's a recursive function without this index. The variable `i` was wrongly copied into its current place from the old code. This patch replaces the variable `i` with the index of the header element. Fix the undefined variable problem. Signed-off-by: Sheogorath --- public/vendor/md-toc.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/vendor/md-toc.js b/public/vendor/md-toc.js index 876978f..59e75ae 100644 --- a/public/vendor/md-toc.js +++ b/public/vendor/md-toc.js @@ -44,7 +44,7 @@ } } - Toc.prototype._createTocContent = function recursiveToc(level = 0, titleElements = [], titleNames = [], ulClass = undefined) { + Toc.prototype._createTocContent = function recursiveToc(level = 0, titleElements = [], titleNames = [], ulClass = undefined, index = 0) { // Inititalize our elements from the toc object // which is only available on level 0 if (level === 0) { @@ -74,8 +74,8 @@ var elementText = (typeof this.process === 'function' ? this.process(element) : element.innerHTML).replace(/<(?:.|\n)*?>/gm, '') var id = element.getAttribute('id') if (!id) { - element.setAttribute('id', 'tip' + i) - id = '#tip' + i + element.setAttribute('id', 'tip' + ++index) + id = '#tip' + index } else { id = '#' + id } @@ -97,7 +97,7 @@ // This element is for the lower lever, we have to re-add it before we send the list down there. titleElements.unshift(element) // Let's call ourself and get to the next level - content += recursiveToc(level + 1, titleElements, titleNames, ulClass) + content += recursiveToc(level + 1, titleElements, titleNames, ulClass, index) } else { // When we end up here, met a higher level element // This is not our business so back into the list with the element and let's end this loop