about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2021-05-31 11:51:22 +0200
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2021-05-31 15:20:45 +0200
commita2ba9ef1ff363341bae9a9ced37f14fee68538ec (patch)
tree0bea906b4ffb920bf69bb79272d208791547ddfc
parente081cd48f47a5d09cd3a8e03ead8890dbf69c176 (diff)
downloadrust-a2ba9ef1ff363341bae9a9ced37f14fee68538ec.tar.gz
rust-a2ba9ef1ff363341bae9a9ced37f14fee68538ec.zip
Only list crates on the crate page
-rw-r--r--src/librustdoc/html/render/context.rs9
-rw-r--r--src/librustdoc/html/static/main.js6
-rw-r--r--src/test/rustdoc-gui/sidebar.goml15
3 files changed, 20 insertions, 10 deletions
diff --git a/src/librustdoc/html/render/context.rs b/src/librustdoc/html/render/context.rs
index 8676efd9fa8..d80b2db00ac 100644
--- a/src/librustdoc/html/render/context.rs
+++ b/src/librustdoc/html/render/context.rs
@@ -200,8 +200,15 @@ impl<'tcx> Context<'tcx> {
             )
         };
         let keywords = make_item_keywords(it);
+        let name;
+        let tyname_s = if it.is_crate() {
+            name = format!("{} crate", tyname);
+            name.as_str()
+        } else {
+            tyname.as_str()
+        };
         let page = layout::Page {
-            css_class: tyname.as_str(),
+            css_class: tyname_s,
             root_path: &self.root_path(),
             static_root_path: self.shared.static_root_path.as_deref(),
             title: &title,
diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js
index 353c7125fc7..1a15a444a70 100644
--- a/src/librustdoc/html/static/main.js
+++ b/src/librustdoc/html/static/main.js
@@ -565,9 +565,12 @@ function hideThemeButtonState() {
     window.initSidebarItems = function(items) {
         var sidebar = document.getElementsByClassName("sidebar-elems")[0];
         var current = window.sidebarCurrent;
-        var isModule = hasClass(document.body, "mod");
 
         function addSidebarCrates(crates) {
+            if (!hasClass(document.body, "crate")) {
+                // We only want to list crates on the crate page.
+                return;
+            }
             // Draw a convenient sidebar of known crates if we have a listing
             var div = document.createElement("div");
             div.className = "block crate";
@@ -634,6 +637,7 @@ function hideThemeButtonState() {
         }
 
         if (sidebar) {
+            var isModule = hasClass(document.body, "mod");
             if (!isModule) {
                 block("primitive", "Primitive Types");
                 block("mod", "Modules");
diff --git a/src/test/rustdoc-gui/sidebar.goml b/src/test/rustdoc-gui/sidebar.goml
index 7e6b8a9b965..5149b933162 100644
--- a/src/test/rustdoc-gui/sidebar.goml
+++ b/src/test/rustdoc-gui/sidebar.goml
@@ -17,12 +17,11 @@ click: "#structs + table td > a"
 
 // PAGE: struct.Foo.html
 assert: (".sidebar .location", 2)
-// We check that we have the crates list and that the "current" on is still "test_docs".
-assert: (".sidebar-elems > .crate > ul > li > a.current", "test_docs")
-// We now move to the other crate to check if its submodules have the correct sidebar elements too.
-click: ".sidebar-elems > .crate > ul > li:first-child > a"
+// We check that there is no crate listed outside of the top level.
+assert-false: ".sidebar-elems > .crate"
 
 // PAGE: lib2/index.html
+goto: file://|DOC_PATH|/lib2/index.html
 assert: (".sidebar > .location", "Crate lib2")
 // We check that we have the crates list and that the "current" on is now "lib2".
 assert: (".sidebar-elems > .crate > ul > li > a.current", "lib2")
@@ -36,12 +35,12 @@ click: "#functions + table td > a"
 // In items containing no items (like functions or constants) and in modules, we have one
 // "location" elements.
 assert: (".sidebar .location", 1)
-// We check that we still have the crates list and that the "current" on is still "lib2".
-assert: (".sidebar-elems > .crate > ul > li > a.current", "lib2")
+// We check that we don't have the crate list.
+assert-false: ".sidebar-elems > .crate"
 goto: ./module/sub_module/sub_sub_module/index.html
 
 assert: (".sidebar > .location", "Module sub_sub_module")
-assert: (".sidebar-elems > .crate > ul > li:nth-child(2) > a", "test_docs")
-assert: (".sidebar-elems > .crate > ul > li:nth-child(2) > a", "href", "../../../../test_docs/index.html")
+// We check that we don't have the crate list.
+assert-false: ".sidebar-elems > .crate"
 assert: (".sidebar-elems > .items > ul > li:nth-child(1)", "Functions")
 assert: ("#functions + table td > a", "foo")