| 12345678910111213141516171819202122232425262728293031 |
- // Link tabs, as per https://facelessuser.github.io/pymdown-extensions/extensions/tabbed/#linked-tabs
- const savedTab = localStorage.getItem('savedTab')
- const tabs = document.querySelectorAll(".tabbed-set > input")
- for (const tab of tabs) {
- tab.addEventListener("click", () => {
- const current = document.querySelector(`label[for=${tab.id}]`)
- const pos = current.getBoundingClientRect().top
- const labelContent = current.innerHTML
- const labels = document.querySelectorAll('.tabbed-set > label, .tabbed-alternate > .tabbed-labels > label')
- for (const label of labels) {
- if (label.innerHTML === labelContent) {
- document.querySelector(`input[id=${label.getAttribute('for')}]`).checked = true
- }
- }
- // Preserve scroll position
- const delta = (current.getBoundingClientRect().top) - pos
- window.scrollBy(0, delta)
- // Save
- localStorage.setItem('savedTab', labelContent)
- })
- // Select saved tab
- const current = document.querySelector(`label[for=${tab.id}]`)
- const labelContent = current.innerHTML
- if (savedTab === labelContent) {
- tab.checked = true
- }
- }
|