diff --git a/docs/source/_static/collapse_overloads.js b/docs/source/_static/collapse_overloads.js index ea8135f407..2ec2e710fb 100644 --- a/docs/source/_static/collapse_overloads.js +++ b/docs/source/_static/collapse_overloads.js @@ -18,3 +18,50 @@ document.addEventListener("DOMContentLoaded", () => { } }); }); + +document.addEventListener("DOMContentLoaded", () => { + const toc = document.querySelector(".toctree-wrapper"); + if (!toc) return; + + const leaf_traversal_fn = (leaf) => { + try { + const links = leaf.querySelectorAll("a"); + if (!links) return; + const seen = new Set(); + links.forEach(link => { + let text = link.textContent.trim(); + let norm = text.replace(/\(\)$/, ""); // strip trailing () + + if (seen.has(norm)) { + // hide duplicate + link.parentElement.style.display = "none"; + } else { + seen.add(norm); + } + }); + } catch (error) { + console.error(error); + } + }; + queue = [toc.querySelector("li")]; + while (queue.length > 0) { + const tree = queue.shift(); + try { + if (tree.childElementCount > 1 && + tree.firstChild.hasAttribute("href") && + tree.firstChild.attributes["href"].value.includes("#")) { + leaf_traversal_fn(tree.childNodes[1]); + } else { + const child = tree.querySelector("li"); + if (child) { + queue.push(child); + } + } + } catch (error) { + console.error(error); + } + if (tree.nextElementSibling) { + queue.push(tree.nextElementSibling); + } + } + });