summaryrefslogtreecommitdiffstats
path: root/common/js/pandoc-menu.js
diff options
context:
space:
mode:
Diffstat (limited to 'common/js/pandoc-menu.js')
-rw-r--r--common/js/pandoc-menu.js31
1 files changed, 25 insertions, 6 deletions
diff --git a/common/js/pandoc-menu.js b/common/js/pandoc-menu.js
index af9153b..84fd020 100644
--- a/common/js/pandoc-menu.js
+++ b/common/js/pandoc-menu.js
@@ -1,13 +1,34 @@
1document.addEventListener('DOMContentLoaded', function () { 1document.addEventListener('DOMContentLoaded', function () {
2 const headings = document.querySelectorAll('h1, h2, h3, h4, h5, h6'); 2 const menudiv = document.createElement('div');
3 menudiv.className = 'side-menu';
4
5 const menutitle = document.createElement('div');
6 menutitle.textContent = document.title;
7 menudiv.appendChild(menutitle);
8
9 // a button to open/close nav list
10 const toggleNavButton = document.createElement('button');
11 toggleNavButton.id = 'toggle-nav';
12 toggleNavButton.textContent = '关闭';
13 menudiv.appendChild(toggleNavButton);
14
15 // Add click event listener to the button
16 toggleNavButton.addEventListener('click', () => {
17 nav.style.display = nav.style.display === 'none' ? 'block' : 'none';
18 toggleNavButton.textContent = toggleNavButton.textContent === '关闭' ? '打开' : '关闭';
19 });
20
21 // nav list itself
3 const nav = document.createElement('nav'); 22 const nav = document.createElement('nav');
4 document.querySelector('.pandoc').insertBefore(nav, document.querySelector('.pandoc').firstChild); 23 menudiv.appendChild(nav);
24 document.querySelector('.pandoc').insertBefore(menudiv, document.querySelector('.pandoc').firstChild);
5 const topLevelList = document.createElement('ul'); 25 const topLevelList = document.createElement('ul');
6 nav.appendChild(topLevelList); 26 nav.appendChild(topLevelList);
7 27
8 let currentLevel = topLevelList; 28 let currentLevel = topLevelList;
9 let lastLevel = 1; 29 let lastLevel = 1;
10 30
31 const headings = document.querySelectorAll('h1, h2, h3, h4, h5, h6');
11 headings.forEach(heading => { 32 headings.forEach(heading => {
12 const listItem = document.createElement('li'); 33 const listItem = document.createElement('li');
13 const anchor = document.createElement('a'); 34 const anchor = document.createElement('a');
@@ -31,9 +52,7 @@ document.addEventListener('DOMContentLoaded', function () {
31 lastLevel = level; 52 lastLevel = level;
32 }); 53 });
33 54
34 // document.body.insertBefore(nav, document.body.firstChild); 55 // Add functionality for expanding/collapsing menu list
35
36 // Add functionality for expanding/collapsing
37 const navLinks = document.querySelectorAll('nav ul li'); 56 const navLinks = document.querySelectorAll('nav ul li');
38 navLinks.forEach(link => { 57 navLinks.forEach(link => {
39 const sublist = link.querySelector('ul'); 58 const sublist = link.querySelector('ul');
@@ -49,4 +68,4 @@ document.addEventListener('DOMContentLoaded', function () {
49 }); 68 });
50 } 69 }
51 }); 70 });
52}); \ No newline at end of file 71});