From e71f6203faf13574ef45bf80e23a546ac7866d5d Mon Sep 17 00:00:00 2001 From: altaf-creator Date: Tue, 25 Jul 2023 09:45:30 +0700 Subject: Initial commit --- scripts/toc.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 scripts/toc.js (limited to 'scripts/toc.js') diff --git a/scripts/toc.js b/scripts/toc.js new file mode 100644 index 0000000..bfdfe42 --- /dev/null +++ b/scripts/toc.js @@ -0,0 +1,46 @@ +// i am a C# developer +// trying javascript + +window.onload = function() { + 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) + + 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 + } + } + } +} \ No newline at end of file -- cgit v1.2.3