From cd34dc6fb1cd47e578f761a7609bd976f253eac7 Mon Sep 17 00:00:00 2001 From: altaf-creator Date: Wed, 17 Apr 2024 16:19:15 +0700 Subject: idk what i did, i forgot. go check the diffs --- scripts/toc.js | 84 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 45 insertions(+), 39 deletions(-) (limited to 'scripts/toc.js') diff --git a/scripts/toc.js b/scripts/toc.js index 107c846..2823b53 100644 --- a/scripts/toc.js +++ b/scripts/toc.js @@ -2,45 +2,51 @@ // trying javascript function toc() { - const tocDiv = document.getElementById("toc"); - const content = document.getElementById("main"); - const headers = content.querySelectorAll('h1, h2, h3, h4, h5, h6'); - - console.log(headers) + const tocDiv = document.getElementById("toc"); + const content = document.getElementById("main"); + const headers = content.querySelectorAll('h1, h2, h3, h4, h5, h6'); + + console.log(headers) - const ul = document.createElement("ul"); - tocDiv.appendChild(ul) + const ul = document.createElement("ul"); + tocDiv.appendChild(ul) + + for (var i = 0; i < headers.length; i++) { + if (!headers[i].hasAttribute('id')) { + headers[i].setAttribute('id', `${headers[i].innerHTML.split(" ")[0]}-${i}`) + } + } + + for (var i = 0; i < headers.length; i++) { + if (headers[i].hasAttribute('id')) { + const li = document.createElement("li"); + var level = headers[i].tagName[1]; + console.log(level + headers[i].tagName + headers[i].id) + if (level == 1) { + const a = document.createElement("a"); + ul.appendChild(li); + li.appendChild(a); + a.href = "#" + headers[i].id + a.textContent = headers[i].textContent + } + else + { + var nowUl = document.createElement("ul"); + ul.appendChild(nowUl); - for (var i = 0; i < headers.length; i++) { - if (headers[i].hasAttribute('id')) { - const li = document.createElement("li"); - var level = headers[i].tagName[1]; - console.log(level + headers[i].tagName + headers[i].id) - if (level == 1) { - const a = document.createElement("a"); - ul.appendChild(li); - li.appendChild(a); - a.href = "#" + headers[i].id - a.textContent = headers[i].textContent - } - else - { - var nowUl = document.createElement("ul"); - ul.appendChild(nowUl); - - for (var j = 0; j < level - 2; j++) { - const currentUl = document.createElement("ul"); - nowUl.appendChild(currentUl); - nowUl = currentUl; - } - - const currentLi = document.createElement("li"); - const a = document.createElement("a"); - nowUl.appendChild(currentLi); - currentLi.appendChild(a); - a.href = "#" + headers[i].id - a.textContent = headers[i].textContent - } - } - } + for (var j = 0; j < level - 2; j++) { + const currentUl = document.createElement("ul"); + nowUl.appendChild(currentUl); + nowUl = currentUl; + } + + const currentLi = document.createElement("li"); + const a = document.createElement("a"); + nowUl.appendChild(currentLi); + currentLi.appendChild(a); + a.href = "#" + headers[i].id + a.textContent = headers[i].textContent + } + } + } } -- cgit v1.2.3