From 5aa1e7880747d80ddbbd31a87fc1343af46e7db6 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sat, 5 Oct 2019 13:29:35 -0400 Subject: [PATCH] generated docs: navigable types --- lib/std/special/doc/main.js | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/lib/std/special/doc/main.js b/lib/std/special/doc/main.js index 0fa281854a..d27efd2b48 100644 --- a/lib/std/special/doc/main.js +++ b/lib/std/special/doc/main.js @@ -73,7 +73,7 @@ domStatus.textContent = "404 Not Found"; domStatus.classList.remove("hidden"); domSectPkgs.classList.add("hidden"); - domListPkgs.classList.add("hidden"); + domSectTypes.classList.add("hidden"); } function renderPkgList(pkg) { @@ -90,20 +90,28 @@ }); if (list.length === 0) { - domSectPkgs.classList.remove("hidden"); + domSectPkgs.classList.add("hidden"); } else { resizeDomList(domListPkgs, list.length, '
  • '); for (var i = 0; i < list.length; i += 1) { var liDom = domListPkgs.children[i]; var aDom = liDom.children[0]; aDom.textContent = list[i].name; - aDom.setAttribute('href', "#" + list[i].name); + aDom.setAttribute('href', navLinkPkg(list[i].name)); } domSectPkgs.classList.remove("hidden"); } } + function navLinkPkg(childName) { + return '#' + (curNav.pkgNames.concat([childName])).join(','); + } + + function navLinkDecl(childName) { + return '#' + curNav.pkgNames.join(",") + ';' + (curNav.declNames.concat([childName])).join(","); + } + function resizeDomList(listDom, desiredLen, templateHtml) { // add the missing dom entries var i, ev; @@ -129,11 +137,13 @@ return operatorCompare(a.name.toLowerCase(), b.name.toLowerCase()); }); - resizeDomList(domListTypes, list.length, '
  • '); + resizeDomList(domListTypes, list.length, '
  • '); for (var i = 0; i < list.length; i += 1) { - var domItem = domListTypes.children[i]; + var liDom = domListTypes.children[i]; + var aDom = liDom.children[0]; var decl = list[i]; - domItem.textContent = decl.name; + aDom.textContent = decl.name; + aDom.setAttribute('href', navLinkDecl(decl.name)); } domSectTypes.classList.remove("hidden");