annotate src/capnproto-0.6.0/doc/javascripts/main.js @ 148:b4bfdf10c4b3

Update Win64 capnp builds to v0.6
author Chris Cannam <cannam@all-day-breakfast.com>
date Mon, 22 May 2017 18:56:49 +0100
parents 45360b968bf4
children
rev   line source
cannam@147 1 function initSidebar() {
cannam@147 2 var filename = document.location.pathname;
cannam@147 3
cannam@147 4 if (filename.slice(0, 5) == "/next") {
cannam@147 5 filename = filename.slice(5);
cannam@147 6 }
cannam@147 7
cannam@147 8 if (filename == "/") {
cannam@147 9 filename = "/index.html";
cannam@147 10 } else if (filename.slice(0, 6) == "/news/") {
cannam@147 11 filename = "/news/";
cannam@147 12 }
cannam@147 13
cannam@147 14 var menu = document.getElementById("menu");
cannam@147 15 var setMenuLayout = function() {
cannam@147 16 if (window.innerWidth < 900) {
cannam@147 17 document.body.className = "narrow";
cannam@147 18 menu.className = "";
cannam@147 19 } else {
cannam@147 20 if (document.body.clientWidth < 1340) {
cannam@147 21 document.body.className = "normal";
cannam@147 22 } else {
cannam@147 23 document.body.className = "wide";
cannam@147 24 }
cannam@147 25
cannam@147 26 var y = (window.pageYOffset !== undefined) ? window.pageYOffset :
cannam@147 27 (document.documentElement || document.body.parentNode || document.body).scrollTop;
cannam@147 28
cannam@147 29 if (y < 444 || window.innerHeight < menu.clientHeight + 100) {
cannam@147 30 menu.className = "";
cannam@147 31 } else {
cannam@147 32 menu.className = "floating";
cannam@147 33 }
cannam@147 34 }
cannam@147 35 };
cannam@147 36 setMenuLayout();
cannam@147 37 window.onresize = setMenuLayout;
cannam@147 38 window.onscroll = setMenuLayout;
cannam@147 39
cannam@147 40 var items = menu.getElementsByTagName("li");
cannam@147 41 var toc = null;
cannam@147 42 for (var i = 0; i < items.length; i++) {
cannam@147 43 var link = items[i].getElementsByTagName("a")[0];
cannam@147 44 var href = link.href;
cannam@147 45 if (href.lastIndexOf(filename) >= 0) {
cannam@147 46 var parent = link.parentNode;
cannam@147 47
cannam@147 48 while (link.childNodes.length > 0) {
cannam@147 49 var child = link.childNodes[0];
cannam@147 50 link.removeChild(child);
cannam@147 51 parent.appendChild(child);
cannam@147 52 }
cannam@147 53 parent.removeChild(link);
cannam@147 54 items[i].className = "selected";
cannam@147 55 toc = document.createElement("ul");
cannam@147 56 toc.id = "toc";
cannam@147 57 items[i].appendChild(toc);
cannam@147 58 }
cannam@147 59 }
cannam@147 60
cannam@147 61 document.getElementById("main_content").style.minHeight = menu.clientHeight + 100 + "px";
cannam@147 62
cannam@147 63 return toc;
cannam@147 64 }
cannam@147 65
cannam@147 66 function setupSidebar() {
cannam@147 67 var filename = document.location.pathname;
cannam@147 68
cannam@147 69 if (filename.slice(0, 5) == "/next") {
cannam@147 70 filename = filename.slice(5);
cannam@147 71 }
cannam@147 72
cannam@147 73 var isNews = filename.slice(0, 6) == "/news/";
cannam@147 74
cannam@147 75 var toc = initSidebar();
cannam@147 76 if (toc) {
cannam@147 77 var content = document.getElementById("main_content").childNodes;
cannam@147 78 var headings = [];
cannam@147 79
cannam@147 80 for (var i = 0; i < content.length; i++) {
cannam@147 81 if (content[i].tagName == "H2" ||
cannam@147 82 (!isNews && (content[i].tagName == "H3" || content[i].tagName == "H4"))) {
cannam@147 83 headings.push(content[i]);
cannam@147 84 }
cannam@147 85 }
cannam@147 86
cannam@147 87 var levels = [toc];
cannam@147 88 for (var i in headings) {
cannam@147 89 var hl = headings[i].tagName.slice(1) - 1;
cannam@147 90 while (hl > levels.length) {
cannam@147 91 var parent = levels[levels.length - 1];
cannam@147 92 var item = parent.childNodes[parent.childNodes.length - 1];
cannam@147 93 var sublist = document.createElement("ul");
cannam@147 94 item.appendChild(sublist);
cannam@147 95 levels.push(sublist);
cannam@147 96 }
cannam@147 97 while (hl < levels.length) {
cannam@147 98 levels.pop();
cannam@147 99 }
cannam@147 100
cannam@147 101 var parent = levels[levels.length - 1];
cannam@147 102 var item = document.createElement("li");
cannam@147 103 var p = document.createElement("p");
cannam@147 104 var link = document.createElement("a");
cannam@147 105 p.appendChild(document.createTextNode(headings[i].innerText || headings[i].textContent));
cannam@147 106 var hlinks = headings[i].getElementsByTagName("a");
cannam@147 107 if (hlinks.length == 1) {
cannam@147 108 link.href = hlinks[0].href;
cannam@147 109 } else {
cannam@147 110 link.href = "#" + headings[i].id;
cannam@147 111 }
cannam@147 112 link.appendChild(p);
cannam@147 113 item.appendChild(link);
cannam@147 114 parent.appendChild(item);
cannam@147 115 }
cannam@147 116 }
cannam@147 117 }
cannam@147 118
cannam@147 119 function setupNewsSidebar(items) {
cannam@147 120 var toc = initSidebar();
cannam@147 121 if (toc) {
cannam@147 122 for (var i in items) {
cannam@147 123 var item = document.createElement("li");
cannam@147 124 var p = document.createElement("p");
cannam@147 125 var link = document.createElement("a");
cannam@147 126 p.appendChild(document.createTextNode(items[i].title));
cannam@147 127 link.href = items[i].url;
cannam@147 128 link.appendChild(p);
cannam@147 129 item.appendChild(link);
cannam@147 130 toc.appendChild(item);
cannam@147 131 }
cannam@147 132 }
cannam@147 133 }