| author | |
| committer | |
| log | d70c30055e26be29fceede7559afec46a89a9f5c |
| tree | 452f06f099244c77bec91b7f8714a1ee8af2374b |
| parent | 9237461b24664ecf12546b87530952f49f0e1166 |
| signature |
2 files changed, 94 insertions(+), 23 deletions(-)
lib/std/special/docs/index.html+71-12| ... | ... | @@ -22,9 +22,32 @@ |
| 22 | 22 | padding:1em; |
| 23 | 23 | overflow-x: auto; |
| 24 | 24 | } |
| 25 | nav { | |
| 26 | width: 10em; | |
| 27 | position: fixed; | |
| 28 | left: 0; | |
| 29 | top: 0; | |
| 30 | height: 100vh; | |
| 31 | overflow: auto; | |
| 32 | } | |
| 33 | nav h2 { | |
| 34 | font-size: 1.2em; | |
| 35 | text-decoration: underline; | |
| 36 | margin: 0; | |
| 37 | padding: 0.5em 0; | |
| 38 | text-align: center; | |
| 39 | } | |
| 40 | nav p { | |
| 41 | margin: 0; | |
| 42 | padding: 0; | |
| 43 | text-align: center; | |
| 44 | } | |
| 45 | section { | |
| 46 | margin-left: 10em; | |
| 47 | } | |
| 25 | 48 | #listNav { |
| 26 | 49 | list-style-type: none; |
| 27 | margin: 0; | |
| 50 | margin: 0.5em 0 0 0; | |
| 28 | 51 | padding: 0; |
| 29 | 52 | overflow: hidden; |
| 30 | 53 | background-color: #333; |
| ... | ... | @@ -36,7 +59,7 @@ |
| 36 | 59 | display: block; |
| 37 | 60 | color: #fff; |
| 38 | 61 | text-align: center; |
| 39 | padding: .8em .8em; | |
| 62 | padding: .5em .8em; | |
| 40 | 63 | text-decoration: none; |
| 41 | 64 | } |
| 42 | 65 | #listNav li a:hover { |
| ... | ... | @@ -46,14 +69,30 @@ |
| 46 | 69 | background-color: #4CAF50; |
| 47 | 70 | } |
| 48 | 71 | |
| 72 | #listPkgs { | |
| 73 | list-style-type: none; | |
| 74 | margin: 0; | |
| 75 | padding: 0; | |
| 76 | background-color: #f1f1f1; | |
| 77 | } | |
| 78 | #listPkgs li a { | |
| 79 | display: block; | |
| 80 | color: #000; | |
| 81 | padding: 8px 16px; | |
| 82 | text-decoration: none; | |
| 83 | } | |
| 84 | #listPkgs li a:hover { | |
| 85 | background-color: #555; | |
| 86 | color: #fff; | |
| 87 | } | |
| 88 | ||
| 49 | 89 | #logo { |
| 50 | width: 5em; | |
| 51 | float: left; | |
| 52 | padding: 0 1em 0 0; | |
| 90 | width: 8em; | |
| 91 | padding: 0.5em 1em; | |
| 53 | 92 | } |
| 54 | 93 | |
| 55 | 94 | #search { |
| 56 | width: 90%; | |
| 95 | width: 100%; | |
| 57 | 96 | } |
| 58 | 97 | |
| 59 | 98 | @media (prefers-color-scheme: dark) { |
| ... | ... | @@ -67,11 +106,35 @@ |
| 67 | 106 | pre{ |
| 68 | 107 | background-color:#2A2A2A; |
| 69 | 108 | } |
| 109 | #listPkgs { | |
| 110 | background-color: #333; | |
| 111 | } | |
| 112 | #listPkgs li a { | |
| 113 | color: #fff; | |
| 114 | } | |
| 115 | #listPkgs li a:hover { | |
| 116 | background-color: #555; | |
| 117 | color: #fff; | |
| 118 | } | |
| 70 | 119 | } |
| 71 | 120 | </style> |
| 72 | 121 | </head> |
| 73 | 122 | <body> |
| 74 | <img alt="ZIG" id="logo" src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNTAgMTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGZpbGw9IiNmN2E0MWQiPjxwYXRoIGQ9Im0wIDEwdjgwaDE5bDYtMTAgMTItMTBoLTE3di00MGgxNXYtMjB6bTQwIDB2MjBoNjJ2LTIwem05MSAwLTYgMTAtMTIgMTBoMTd2NDBoLTE1djIwaDM1di04MHptLTgzIDYwdjIwaDYydi0yMHoiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyIvPjxwYXRoIGQ9Im0zNyA3MC0xOCAyMHYtMTV6Ii8+PHBhdGggZD0ibTExMyAzMCAxOC0yMHYxNXoiLz48cGF0aCBkPSJtOTYuOTggMTAuNjMgMzYuMjgtMTAuNC04MC4yOSA4OS4xNy0zNi4yOCAxMC40eiIvPjwvZz48L3N2Zz4K"></img> | |
| 123 | <nav> | |
| 124 | <img alt="ZIG" id="logo" src="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNTAgMTAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGZpbGw9IiNmN2E0MWQiPjxwYXRoIGQ9Im0wIDEwdjgwaDE5bDYtMTAgMTItMTBoLTE3di00MGgxNXYtMjB6bTQwIDB2MjBoNjJ2LTIwem05MSAwLTYgMTAtMTIgMTBoMTd2NDBoLTE1djIwaDM1di04MHptLTgzIDYwdjIwaDYydi0yMHoiIHNoYXBlLXJlbmRlcmluZz0iY3Jpc3BFZGdlcyIvPjxwYXRoIGQ9Im0zNyA3MC0xOCAyMHYtMTV6Ii8+PHBhdGggZD0ibTExMyAzMCAxOC0yMHYxNXoiLz48cGF0aCBkPSJtOTYuOTggMTAuNjMgMzYuMjgtMTAuNC04MC4yOSA4OS4xNy0zNi4yOCAxMC40eiIvPjwvZz48L3N2Zz4K"></img> | |
| 125 | <div id="sectPkgs" class="hidden"> | |
| 126 | <h2>Packages</h2> | |
| 127 | <ul id="listPkgs"> | |
| 128 | </ul> | |
| 129 | </div> | |
| 130 | <div id="sectInfo" class="hidden"> | |
| 131 | <h2>Zig Version</h2> | |
| 132 | <p id="tdZigVer"></p> | |
| 133 | <h2>Target</h2> | |
| 134 | <p id="tdTarget"></p> | |
| 135 | </div> | |
| 136 | </nav> | |
| 137 | <section> | |
| 75 | 138 | <input type="search" id="search" autocomplete="off" spellcheck="false" placeholder="`s` to search, `?` to see more options"> |
| 76 | 139 | <p id="status">Loading...</p> |
| 77 | 140 | <div id="sectNav" class="hidden"><ul id="listNav"></ul></div> |
| ... | ... | @@ -81,11 +144,6 @@ |
| 81 | 144 | <div id="fnDocs" class="hidden"></div> |
| 82 | 145 | <div id="sectSearchResults" class="hidden"><ul id="listSearchResults"></ul></div> |
| 83 | 146 | <div id="sectSearchNoResults" class="hidden"><p>No search results.</p></div> |
| 84 | <div id="sectPkgs" class="hidden"> | |
| 85 | <h2>Packages</h2> | |
| 86 | <ul id="listPkgs"> | |
| 87 | </ul> | |
| 88 | </div> | |
| 89 | 147 | <div id="sectTypes" class="hidden"> |
| 90 | 148 | <h2>Types</h2> |
| 91 | 149 | <ul id="listTypes"> |
| ... | ... | @@ -96,6 +154,7 @@ |
| 96 | 154 | <ul id="listFns"> |
| 97 | 155 | </ul> |
| 98 | 156 | </div> |
| 157 | </section> | |
| 99 | 158 | <script src="data.js"></script> |
| 100 | 159 | <script src="main.js"></script> |
| 101 | 160 | </body> |
lib/std/special/docs/main.js+23-11| ... | ... | @@ -15,6 +15,10 @@ |
| 15 | 15 | var domSectSearchResults = document.getElementById("sectSearchResults"); |
| 16 | 16 | var domListSearchResults = document.getElementById("listSearchResults"); |
| 17 | 17 | var domSectSearchNoResults = document.getElementById("sectSearchNoResults"); |
| 18 | var domSectInfo = document.getElementById("sectInfo"); | |
| 19 | var domListInfo = document.getElementById("listInfo"); | |
| 20 | var domTdTarget = document.getElementById("tdTarget"); | |
| 21 | var domTdZigVer = document.getElementById("tdZigVer"); | |
| 18 | 22 | |
| 19 | 23 | var searchTimer = null; |
| 20 | 24 | var escapeHtmlReplacements = { "&": "&amp;", '"': "&quot;", "<": "&lt;", ">": "&gt;" }; |
| ... | ... | @@ -69,14 +73,18 @@ |
| 69 | 73 | domSectTypes.classList.add("hidden"); |
| 70 | 74 | domSectFns.classList.add("hidden"); |
| 71 | 75 | domSectSearchResults.classList.add("hidden"); |
| 76 | domSectInfo.classList.add("hidden"); | |
| 72 | 77 | |
| 73 | 78 | renderTitle(); |
| 79 | renderInfo(); | |
| 80 | renderPkgList(); | |
| 74 | 81 | |
| 75 | 82 | if (curNavSearch !== "") { |
| 76 | 83 | return renderSearch(); |
| 77 | 84 | } |
| 78 | 85 | |
| 79 | var pkg = zigAnalysis.packages[zigAnalysis.rootPkg]; | |
| 86 | var rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg]; | |
| 87 | var pkg = rootPkg; | |
| 80 | 88 | curNav.pkgObjs = [pkg]; |
| 81 | 89 | for (var i = 0; i < curNav.pkgNames.length; i += 1) { |
| 82 | 90 | var childPkg = zigAnalysis.packages[pkg.table[curNav.pkgNames[i]]]; |
| ... | ... | @@ -109,9 +117,6 @@ |
| 109 | 117 | |
| 110 | 118 | renderNav(); |
| 111 | 119 | |
| 112 | var lastPkg = curNav.pkgObjs[curNav.pkgObjs.length - 1]; | |
| 113 | renderPkgList(lastPkg); | |
| 114 | ||
| 115 | 120 | var lastDecl = curNav.declObjs[curNav.declObjs.length - 1]; |
| 116 | 121 | if (lastDecl.type != null) { |
| 117 | 122 | var typeObj = zigAnalysis.types[lastDecl.type]; |
| ... | ... | @@ -175,18 +180,26 @@ |
| 175 | 180 | domSectNav.classList.remove("hidden"); |
| 176 | 181 | } |
| 177 | 182 | |
| 183 | function renderInfo() { | |
| 184 | domTdZigVer.textContent = zigAnalysis.params.zigVersion; | |
| 185 | domTdTarget.textContent = zigAnalysis.params.target; | |
| 186 | ||
| 187 | domSectInfo.classList.remove("hidden"); | |
| 188 | } | |
| 189 | ||
| 178 | 190 | function render404() { |
| 179 | 191 | domStatus.textContent = "404 Not Found"; |
| 180 | 192 | domStatus.classList.remove("hidden"); |
| 181 | 193 | } |
| 182 | 194 | |
| 183 | function renderPkgList(pkg) { | |
| 195 | function renderPkgList() { | |
| 196 | var rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg]; | |
| 184 | 197 | var list = []; |
| 185 | for (var key in pkg.table) { | |
| 198 | for (var key in rootPkg.table) { | |
| 186 | 199 | if (key === "root" && rootIsStd) continue; |
| 187 | 200 | list.push({ |
| 188 | 201 | name: key, |
| 189 | pkg: pkg.table[key], | |
| 202 | pkg: rootPkg.table[key], | |
| 190 | 203 | }); |
| 191 | 204 | } |
| 192 | 205 | list.sort(function(a, b) { |
| ... | ... | @@ -359,6 +372,9 @@ |
| 359 | 372 | curNav.declNames = parts[1].split("."); |
| 360 | 373 | } |
| 361 | 374 | } |
| 375 | if (domSearch.value !== curNavSearch) { | |
| 376 | domSearch.value = curNavSearch; | |
| 377 | } | |
| 362 | 378 | render(); |
| 363 | 379 | } |
| 364 | 380 | |
| ... | ... | @@ -455,10 +471,6 @@ |
| 455 | 471 | } |
| 456 | 472 | } |
| 457 | 473 | function renderSearch() { |
| 458 | if (domSearch.value !== curNavSearch) { | |
| 459 | domSearch.value = curNavSearch; | |
| 460 | } | |
| 461 | ||
| 462 | 474 | var matchedDecls = []; |
| 463 | 475 | var terms = curNavSearch.split(/[ \r\n\t]+/); |
| 464 | 476 | decl_loop: for (var declIndex = 0; declIndex < zigAnalysis.decls.length; declIndex += 1) { |