From 43b9268592187e9d757e68ae0cf10ee3da68e424 Mon Sep 17 00:00:00 2001 From: Jacob Hoffman-Andrews Date: Wed, 12 Jan 2022 15:05:47 -0800 Subject: [PATCH 1/2] Rustdoc style cleanups - Make "since" version numbers grey again (regressed in #92602). - Remove unneeded selectors for when crate filter dropdown is a sibling of search-input. - Crate filter dropdown doesn't need to be 100% width on mobile. - Only build crate filter dropdown when there is more than one crate. - Remove unused addCrateDropdown. --- src/librustdoc/html/static/css/rustdoc.css | 11 -------- src/librustdoc/html/static/css/themes/ayu.css | 3 ++- .../html/static/css/themes/dark.css | 3 ++- .../html/static/css/themes/light.css | 5 ++++ src/librustdoc/html/static/js/main.js | 27 ------------------- src/librustdoc/html/static/js/search.js | 18 ++++++++----- 6 files changed, 21 insertions(+), 46 deletions(-) diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css index d7f33d6131c84..14b5c851b21a9 100644 --- a/src/librustdoc/html/static/css/rustdoc.css +++ b/src/librustdoc/html/static/css/rustdoc.css @@ -934,11 +934,6 @@ h2.small-section-header > .anchor { width: 100%; } -#crate-search + .search-input { - border-radius: 0 1px 1px 0; - width: calc(100% - 32px); -} - .search-input:focus { border-radius: 2px; border: 0; @@ -2070,16 +2065,10 @@ details.rustdoc-toggle[open] > summary.hideme::after { } #crate-search { - width: 100%; border-radius: 4px; border: 0; } - #crate-search + .search-input { - width: calc(100% + 71px); - margin-left: -36px; - } - #theme-picker, #settings-menu { padding: 5px; width: 31px; diff --git a/src/librustdoc/html/static/css/themes/ayu.css b/src/librustdoc/html/static/css/themes/ayu.css index 23ee87a4e681d..885fe7c09a973 100644 --- a/src/librustdoc/html/static/css/themes/ayu.css +++ b/src/librustdoc/html/static/css/themes/ayu.css @@ -299,7 +299,8 @@ details.undocumented > summary::before { border-color: #5c6773; } -.since { +.rightside, +.out-of-band { color: grey; } diff --git a/src/librustdoc/html/static/css/themes/dark.css b/src/librustdoc/html/static/css/themes/dark.css index 2db725c9b4e97..71af77978328f 100644 --- a/src/librustdoc/html/static/css/themes/dark.css +++ b/src/librustdoc/html/static/css/themes/dark.css @@ -256,7 +256,8 @@ details.undocumented > summary::before { background: rgba(0,0,0,0); } -.since { +.rightside, +.out-of-band { color: grey; } diff --git a/src/librustdoc/html/static/css/themes/light.css b/src/librustdoc/html/static/css/themes/light.css index 3c8dbeb98c5b3..e462fd16237f2 100644 --- a/src/librustdoc/html/static/css/themes/light.css +++ b/src/librustdoc/html/static/css/themes/light.css @@ -243,6 +243,11 @@ details.undocumented > summary::before { border-color: #bfbfbf; } +.rightside, +.out-of-band { + color: grey; +} + .result-name .primitive > i, .result-name .keyword > i { color: black; } diff --git a/src/librustdoc/html/static/js/main.js b/src/librustdoc/html/static/js/main.js index f41c1bd817ab2..f944398272677 100644 --- a/src/librustdoc/html/static/js/main.js +++ b/src/librustdoc/html/static/js/main.js @@ -283,9 +283,6 @@ function hideThemeButtonState() { loadSearch(); } - // `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(); @@ -295,30 +292,6 @@ function hideThemeButtonState() { 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; - } - } - }, }; function getPageId() { diff --git a/src/librustdoc/html/static/js/search.js b/src/librustdoc/html/static/js/search.js index e859431e1f189..104464b388114 100644 --- a/src/librustdoc/html/static/js/search.js +++ b/src/librustdoc/html/static/js/search.js @@ -1126,15 +1126,18 @@ window.initSearch = function(rawSearchIndex) { } } - let crates = ``; + for (let c of window.ALL_CRATES) { + crates += ``; + } + crates += ``; } - crates += ``; var output = `

Results for ${escape(query.query)} ` + (query.type ? " (type: " + escape(query.type) + ")" : "") + "

" + - ` in ${crates} ` + + crates + `
` + makeTabHeader(0, "In Names", ret_others[1]) + makeTabHeader(1, "In Parameters", ret_in_args[1]) + @@ -1148,7 +1151,10 @@ window.initSearch = function(rawSearchIndex) { resultsElem.appendChild(ret_returned[0]); search.innerHTML = output; - document.getElementById("crate-search").addEventListener("input", updateCrate); + let crateSearch = document.getElementById("crate-search"); + if (crateSearch) { + crateSearch.addEventListener("input", updateCrate); + } search.appendChild(resultsElem); // Reset focused elements. searchState.focusedByTab = [null, null, null]; From ae99e23c111a811e7edd886c74b5dc6417dd02d6 Mon Sep 17 00:00:00 2001 From: Jacob Hoffman-Andrews Date: Fri, 14 Jan 2022 19:24:21 -0800 Subject: [PATCH 2/2] Add staged_api for tests --- src/test/rustdoc-gui/headings.goml | 13 +++++++++++++ src/test/rustdoc-gui/src/staged_api/Cargo.lock | 7 +++++++ src/test/rustdoc-gui/src/staged_api/Cargo.toml | 11 +++++++++++ src/test/rustdoc-gui/src/staged_api/lib.rs | 10 ++++++++++ 4 files changed, 41 insertions(+) create mode 100644 src/test/rustdoc-gui/src/staged_api/Cargo.lock create mode 100644 src/test/rustdoc-gui/src/staged_api/Cargo.toml create mode 100644 src/test/rustdoc-gui/src/staged_api/lib.rs diff --git a/src/test/rustdoc-gui/headings.goml b/src/test/rustdoc-gui/headings.goml index 9db75c59d948a..34fadd84ae834 100644 --- a/src/test/rustdoc-gui/headings.goml +++ b/src/test/rustdoc-gui/headings.goml @@ -154,3 +154,16 @@ assert-css: ("h2#top-doc-prose-title", {"font-size": "20.8px"}) assert-css: ("h2#top-doc-prose-title", {"border-bottom-width": "1px"}) assert-css: ("h3#top-doc-prose-sub-heading", {"font-size": "18.4px"}) assert-css: ("h3#top-doc-prose-sub-heading", {"border-bottom-width": "1px"}) + +goto: file://|DOC_PATH|/staged_api/struct.Foo.html +show-text: true +local-storage: {"rustdoc-theme": "light", "rustdoc-use-system-theme": "false"} +assert-css: (".since", {"color": "rgb(128, 128, 128)"}) + +local-storage: {"rustdoc-theme": "dark", "rustdoc-use-system-theme": "false"} +reload: +assert-css: (".since", {"color": "rgb(128, 128, 128)"}) + +local-storage: {"rustdoc-theme": "ayu", "rustdoc-use-system-theme": "false"} +reload: +assert-css: (".since", {"color": "rgb(128, 128, 128)"}) diff --git a/src/test/rustdoc-gui/src/staged_api/Cargo.lock b/src/test/rustdoc-gui/src/staged_api/Cargo.lock new file mode 100644 index 0000000000000..6e8eba56c1eaa --- /dev/null +++ b/src/test/rustdoc-gui/src/staged_api/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "staged_api" +version = "0.1.0" diff --git a/src/test/rustdoc-gui/src/staged_api/Cargo.toml b/src/test/rustdoc-gui/src/staged_api/Cargo.toml new file mode 100644 index 0000000000000..117c4134e3419 --- /dev/null +++ b/src/test/rustdoc-gui/src/staged_api/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "staged_api" +version = "0.1.0" +edition = "2021" + +[lib] +path = "lib.rs" + +[features] +default = ["some_feature"] +some_feature = [] diff --git a/src/test/rustdoc-gui/src/staged_api/lib.rs b/src/test/rustdoc-gui/src/staged_api/lib.rs new file mode 100644 index 0000000000000..0cb460f03f701 --- /dev/null +++ b/src/test/rustdoc-gui/src/staged_api/lib.rs @@ -0,0 +1,10 @@ +#![feature(staged_api)] +#![stable(feature = "some_feature", since = "1.3.5")] + +#[stable(feature = "some_feature", since = "1.3.5")] +pub struct Foo {} + +impl Foo { + #[stable(feature = "some_feature", since = "1.3.5")] + pub fn bar() {} +}