diff --git a/src/librustdoc/html/render/print_item.rs b/src/librustdoc/html/render/print_item.rs index f0ca24b8f0221..20e82cf2caf38 100644 --- a/src/librustdoc/html/render/print_item.rs +++ b/src/librustdoc/html/render/print_item.rs @@ -573,10 +573,6 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra ) } - fn write_loading_content(w: &mut Buffer, extra_content: &str) { - write!(w, "{}Loading content...", extra_content) - } - fn trait_item(w: &mut Buffer, cx: &Context<'_>, m: &clean::Item, t: &clean::Item) { let name = m.name.as_ref().unwrap(); info!("Documenting {} on {:?}", name, t.name); @@ -601,7 +597,7 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra for t in types { trait_item(w, cx, t, it); } - write_loading_content(w, ""); + w.write_str(""); } if !consts.is_empty() { @@ -614,7 +610,7 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra for t in consts { trait_item(w, cx, t, it); } - write_loading_content(w, ""); + w.write_str(""); } // Output the documentation for each function individually @@ -628,7 +624,7 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra for m in required { trait_item(w, cx, m, it); } - write_loading_content(w, ""); + w.write_str(""); } if !provided.is_empty() { write_small_section_header( @@ -640,7 +636,7 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra for m in provided { trait_item(w, cx, m, it); } - write_loading_content(w, ""); + w.write_str(""); } // If there are methods directly on this trait object, render them here. @@ -703,7 +699,6 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra &[], ); } - write_loading_content(w, ""); } write_small_section_header( @@ -715,7 +710,7 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra for implementor in concrete { render_implementor(cx, implementor, it, w, &implementor_dups, &[]); } - write_loading_content(w, ""); + w.write_str(""); if t.is_auto { write_small_section_header( @@ -734,7 +729,7 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra &collect_paths_for_type(implementor.inner_impl().for_.clone(), &cx.cache), ); } - write_loading_content(w, ""); + w.write_str(""); } } else { // even without any implementations to write in, we still want the heading and list, so the @@ -743,18 +738,16 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra w, "implementors", "Implementors", - "
", + "
", ); - write_loading_content(w, "
"); if t.is_auto { write_small_section_header( w, "synthetic-implementors", "Auto implementors", - "
", + "
", ); - write_loading_content(w, "
"); } } diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index 04dc25341f4d3..48ac307e3bac9 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -156,152 +156,154 @@ function hideThemeButtonState() { "use strict"; window.searchState = { - loadingText: "Loading search results...", - input: document.getElementsByClassName("search-input")[0], - outputElement: function() { - return document.getElementById("search"); - }, - title: null, - titleBeforeSearch: document.title, - timeout: null, - // On the search screen, so you remain on the last tab you opened. - // - // 0 for "In Names" - // 1 for "In Parameters" - // 2 for "In Return Types" - currentTab: 0, - mouseMovedAfterSearch: true, - clearInputTimeout: function() { - if (searchState.timeout !== null) { - clearTimeout(searchState.timeout); - searchState.timeout = null; - } - }, - // Sets the focus on the search bar at the top of the page - focus: function() { - searchState.input.focus(); - }, - // Removes the focus from the search bar. - defocus: function() { - searchState.input.blur(); - }, - showResults: function(search) { - if (search === null || typeof search === 'undefined') { - search = searchState.outputElement(); - } - addClass(main, "hidden"); - removeClass(search, "hidden"); - searchState.mouseMovedAfterSearch = false; - document.title = searchState.title; - }, - hideResults: function(search) { - if (search === null || typeof search === 'undefined') { - search = searchState.outputElement(); - } - addClass(search, "hidden"); - removeClass(main, "hidden"); - document.title = searchState.titleBeforeSearch; - // We also remove the query parameter from the URL. - if (searchState.browserSupportsHistoryApi()) { - history.replaceState("", window.currentCrate + " - Rust", - getNakedUrl() + window.location.hash); - } - }, - getQueryStringParams: function() { - var params = {}; - window.location.search.substring(1).split("&"). - map(function(s) { - var pair = s.split("="); - params[decodeURIComponent(pair[0])] = - typeof pair[1] === "undefined" ? null : decodeURIComponent(pair[1]); - }); - return params; - }, - putBackSearch: function(search_input) { - var search = searchState.outputElement(); - if (search_input.value !== "" && hasClass(search, "hidden")) { - searchState.showResults(search); - if (searchState.browserSupportsHistoryApi()) { - var extra = "?search=" + encodeURIComponent(search_input.value); - history.replaceState(search_input.value, "", - getNakedUrl() + extra + window.location.hash); + loadingText: "Loading search results...", + input: document.getElementsByClassName("search-input")[0], + outputElement: function() { + return document.getElementById("search"); + }, + title: null, + titleBeforeSearch: document.title, + timeout: null, + // On the search screen, so you remain on the last tab you opened. + // + // 0 for "In Names" + // 1 for "In Parameters" + // 2 for "In Return Types" + currentTab: 0, + mouseMovedAfterSearch: true, + clearInputTimeout: function() { + if (searchState.timeout !== null) { + clearTimeout(searchState.timeout); + searchState.timeout = null; } + }, + // Sets the focus on the search bar at the top of the page + focus: function() { + searchState.input.focus(); + }, + // Removes the focus from the search bar. + defocus: function() { + searchState.input.blur(); + }, + showResults: function(search) { + if (search === null || typeof search === 'undefined') { + search = searchState.outputElement(); + } + addClass(main, "hidden"); + removeClass(search, "hidden"); + searchState.mouseMovedAfterSearch = false; document.title = searchState.title; - } - }, - browserSupportsHistoryApi: function() { - return window.history && typeof window.history.pushState === "function"; - }, - setup: function() { - var search_input = searchState.input; - if (!searchState.input) { - return; - } - function loadScript(url) { - var script = document.createElement('script'); - script.src = url; - document.head.append(script); - } - - var searchLoaded = false; - function loadSearch() { - if (!searchLoaded) { - searchLoaded = true; - loadScript(window.searchJS); - loadScript(window.searchIndexJS); + }, + hideResults: function(search) { + if (search === null || typeof search === 'undefined') { + search = searchState.outputElement(); + } + addClass(search, "hidden"); + removeClass(main, "hidden"); + document.title = searchState.titleBeforeSearch; + // We also remove the query parameter from the URL. + if (searchState.browserSupportsHistoryApi()) { + history.replaceState("", window.currentCrate + " - Rust", + getNakedUrl() + window.location.hash); + } + }, + getQueryStringParams: function() { + var params = {}; + window.location.search.substring(1).split("&"). + map(function(s) { + var pair = s.split("="); + params[decodeURIComponent(pair[0])] = + typeof pair[1] === "undefined" ? null : decodeURIComponent(pair[1]); + }); + return params; + }, + putBackSearch: function(search_input) { + var search = searchState.outputElement(); + if (search_input.value !== "" && hasClass(search, "hidden")) { + searchState.showResults(search); + if (searchState.browserSupportsHistoryApi()) { + var extra = "?search=" + encodeURIComponent(search_input.value); + history.replaceState(search_input.value, "", + getNakedUrl() + extra + window.location.hash); + } + document.title = searchState.title; + } + }, + browserSupportsHistoryApi: function() { + return window.history && typeof window.history.pushState === "function"; + }, + setup: function() { + var search_input = searchState.input; + if (!searchState.input) { + return; + } + function loadScript(url) { + var script = document.createElement('script'); + script.src = url; + document.head.append(script); } - } - search_input.addEventListener("focus", function() { - searchState.putBackSearch(this); - search_input.origPlaceholder = searchState.input.placeholder; - search_input.placeholder = "Type your search here."; - loadSearch(); - }); - search_input.addEventListener("blur", function() { - search_input.placeholder = searchState.input.origPlaceholder; - }); + var searchLoaded = false; + function loadSearch() { + if (!searchLoaded) { + searchLoaded = true; + loadScript(window.searchJS); + loadScript(window.searchIndexJS); + } + } - document.addEventListener("mousemove", function() { - searchState.mouseMovedAfterSearch = true; - }); + search_input.addEventListener("focus", function() { + searchState.putBackSearch(this); + search_input.origPlaceholder = searchState.input.placeholder; + search_input.placeholder = "Type your search here."; + loadSearch(); + }); + search_input.addEventListener("blur", function() { + search_input.placeholder = searchState.input.origPlaceholder; + }); - search_input.removeAttribute('disabled'); + document.addEventListener("mousemove", function() { + searchState.mouseMovedAfterSearch = true; + }); - // `crates{version}.js` should always be loaded before this script, so we can use it safely. - searchState.addCrateDropdown(window.ALL_CRATES); - var params = searchState.getQueryStringParams(); - if (params.search !== undefined) { - var search = searchState.outputElement(); - search.innerHTML = "

" + - searchState.loadingText + "

"; - searchState.showResults(search); - loadSearch(); - } - }, - addCrateDropdown: function(crates) { - var elem = document.getElementById("crate-search"); + search_input.removeAttribute('disabled'); + + // `crates{version}.js` should always be loaded before this script, so we can use it + // safely. + searchState.addCrateDropdown(window.ALL_CRATES); + var params = searchState.getQueryStringParams(); + if (params.search !== undefined) { + var search = searchState.outputElement(); + search.innerHTML = "

" + + searchState.loadingText + "

"; + searchState.showResults(search); + loadSearch(); + } + }, + addCrateDropdown: function(crates) { + var elem = document.getElementById("crate-search"); - if (!elem) { - return; - } - var savedCrate = getSettingValue("saved-filter-crate"); - for (var i = 0, len = crates.length; i < len; ++i) { - var option = document.createElement("option"); - option.value = crates[i]; - option.innerText = crates[i]; - elem.appendChild(option); - // Set the crate filter from saved storage, if the current page has the saved crate - // filter. - // - // If not, ignore the crate filter -- we want to support filtering for crates on sites - // like doc.rust-lang.org where the crates may differ from page to page while on the - // same domain. - if (crates[i] === savedCrate) { - elem.value = savedCrate; + if (!elem) { + return; } - } - }, + var savedCrate = getSettingValue("saved-filter-crate"); + for (var i = 0, len = crates.length; i < len; ++i) { + var option = document.createElement("option"); + option.value = crates[i]; + option.innerText = crates[i]; + elem.appendChild(option); + // Set the crate filter from saved storage, if the current page has the saved crate + // filter. + // + // If not, ignore the crate filter -- we want to support filtering for crates on + // sites like doc.rust-lang.org where the crates may differ from page to page while + // on the + // same domain. + if (crates[i] === savedCrate) { + elem.value = savedCrate; + } + } + }, }; function getPageId() { @@ -1140,26 +1142,6 @@ function hideThemeButtonState() { }; } - if (main) { - onEachLazy(main.getElementsByClassName("loading-content"), function(e) { - e.remove(); - }); - onEachLazy(main.childNodes, function(e) { - // Unhide the actual content once loading is complete. Headers get - // flex treatment for their horizontal layout, divs get block treatment - // for vertical layout (column-oriented flex layout for divs caused - // errors in mobile browsers). - if (e.tagName === "H2" || e.tagName === "H3") { - var nextTagName = e.nextElementSibling.tagName; - if (nextTagName === "H2" || nextTagName === "H3") { - e.nextElementSibling.style.display = "flex"; - } else if (nextTagName !== "DETAILS") { - e.nextElementSibling.style.display = "block"; - } - } - }); - } - function buildHelperPopup() { var popup = document.createElement("aside"); addClass(popup, "hidden"); diff --git a/src/librustdoc/html/static/noscript.css b/src/librustdoc/html/static/noscript.css index 4d3332877c0d5..0a196edd53b1d 100644 --- a/src/librustdoc/html/static/noscript.css +++ b/src/librustdoc/html/static/noscript.css @@ -4,31 +4,6 @@ of content is hidden by default (depending on the settings too), we have to over rules. */ -#main > h2 + div, #main > h2 + h3, #main > h3 + div { - display: block; -} - -.loading-content { - display: none; -} - -#main > h2 + div, #main > h3 + div { - display: block; -} - -#main > h2 + h3 { - display: flex; -} - -#main .impl-items .hidden { - display: block !important; -} - -#main .impl-items h4.hidden { - /* Without this rule, the version and the "[src]" span aren't on the same line as the header. */ - display: flex !important; -} - #main .attributes { /* Since there is no toggle (the "[-]") when JS is disabled, no need for this margin either. */ margin-left: 0 !important; diff --git a/src/librustdoc/html/static/rustdoc.css b/src/librustdoc/html/static/rustdoc.css index aaa2525644f11..c170a71da39d5 100644 --- a/src/librustdoc/html/static/rustdoc.css +++ b/src/librustdoc/html/static/rustdoc.css @@ -145,7 +145,7 @@ h4.type.trait-impl, h4.associatedconstant.trait-impl, h4.associatedtype.trait-im h1, h2, h3, h4, .sidebar, a.source, .search-input, .content table td:first-child > a, -.collapse-toggle, div.item-list .out-of-band, +div.item-list .out-of-band, #source-sidebar, #sidebar-toggle, details.rustdoc-toggle > summary::before, details.undocumented > summary::before, @@ -431,11 +431,6 @@ nav.sub { #main > .docblock h2 { font-size: 1.15em; } #main > .docblock h3, #main > .docblock h4, #main > .docblock h5 { font-size: 1em; } -#main > h2 + div, #main > h2 + h3, #main > h3 + div { - display: none; /* Changed to flex or block via js once the page is loaded */ - flex-wrap: wrap; -} - .docblock h1 { font-size: 1em; } .docblock h2 { font-size: 0.95em; } .docblock h3, .docblock h4, .docblock h5 { font-size: 0.9em; } @@ -565,9 +560,6 @@ h4 > code, h3 > code, .invisible > code { .content .docblock >.impl-items table td { padding: 0; } -.toggle-wrapper.marg-left > .collapse-toggle { - left: -24px; -} .content .docblock > .impl-items .table-display, .impl-items table td { border: none; } @@ -974,45 +966,6 @@ a.test-arrow:hover{ font-weight: 300; } -.collapse-toggle { - font-weight: 300; - position: absolute; - left: -23px; - top: 0; -} - -h3 > .collapse-toggle, h4 > .collapse-toggle { - font-size: 0.8em; - top: 5px; -} - -.toggle-wrapper > .collapse-toggle { - left: -24px; - margin-top: 0px; -} - -.toggle-wrapper { - position: relative; - margin-top: 0; -} - -.toggle-wrapper.collapsed { - height: 25px; - transition: height .2s; - margin-bottom: .6em; -} - -.collapse-toggle > .inner { - display: inline-block; - width: 1.2ch; - text-align: center; -} - -.collapse-toggle.hidden-default { - position: relative; - margin-left: 20px; -} - .since + .srclink { display: table-cell; padding-left: 10px; @@ -1029,14 +982,6 @@ h3 > .collapse-toggle, h4 > .collapse-toggle { margin-right: 5px; } -.toggle-wrapper > .collapse-toggle { - left: 0; -} - -.variant + .toggle-wrapper + .docblock > p { - margin-top: 5px; -} - .sub-variant, .sub-variant > h3 { margin-top: 0px !important; padding-top: 1px; @@ -1457,14 +1402,6 @@ h4 > .notable-traits { position: inherit; } - .toggle-wrapper > .collapse-toggle { - left: 0px; - } - - .toggle-wrapper { - height: 1.5em; - } - #search { margin-left: 0; } @@ -1555,14 +1492,6 @@ h4 > .notable-traits { border-bottom: 1px solid; } - .collapse-toggle { - left: -20px; - } - - .impl > .collapse-toggle { - left: -10px; - } - .item-list > details.rustdoc-toggle > summary:not(.hideme)::before { left: -10px; } @@ -1602,7 +1531,7 @@ h4 > .notable-traits { } @media print { - nav.sub, .content .out-of-band, .collapse-toggle { + nav.sub, .content .out-of-band { display: none; } } diff --git a/src/librustdoc/html/static/search.js b/src/librustdoc/html/static/search.js index b4f9d7b374052..a09d3eb1796b3 100644 --- a/src/librustdoc/html/static/search.js +++ b/src/librustdoc/html/static/search.js @@ -1505,7 +1505,7 @@ window.initSearch = function(rawSearchIndex) { }; if (window.searchIndex !== undefined) { - initSearch(window.searchIndex); + initSearch(window.searchIndex); } })(); diff --git a/src/librustdoc/html/static/themes/ayu.css b/src/librustdoc/html/static/themes/ayu.css index aafb7f6300ea4..29141dd707212 100644 --- a/src/librustdoc/html/static/themes/ayu.css +++ b/src/librustdoc/html/static/themes/ayu.css @@ -224,7 +224,6 @@ a { color: #39AFD7; } -.collapse-toggle, details.rustdoc-toggle > summary.hideme > span, details.rustdoc-toggle > summary::before, details.undocumented > summary::before { diff --git a/src/librustdoc/html/static/themes/dark.css b/src/librustdoc/html/static/themes/dark.css index 715605d7b3785..e630b2e468352 100644 --- a/src/librustdoc/html/static/themes/dark.css +++ b/src/librustdoc/html/static/themes/dark.css @@ -186,7 +186,6 @@ a.test-arrow { color: #dedede; } -.collapse-toggle, details.rustdoc-toggle > summary.hideme > span, details.rustdoc-toggle > summary::before, details.undocumented > summary::before { diff --git a/src/librustdoc/html/static/themes/light.css b/src/librustdoc/html/static/themes/light.css index 60ed889879387..e228fbd998987 100644 --- a/src/librustdoc/html/static/themes/light.css +++ b/src/librustdoc/html/static/themes/light.css @@ -184,7 +184,6 @@ a.test-arrow { color: #f5f5f5; } -.collapse-toggle, details.rustdoc-toggle > summary.hideme > span, details.rustdoc-toggle > summary::before, details.undocumented > summary::before {