]> git.lizzy.rs Git - rust.git/commitdiff
Only list crates on the crate page
authorGuillaume Gomez <guillaume1.gomez@gmail.com>
Mon, 31 May 2021 09:51:22 +0000 (11:51 +0200)
committerGuillaume Gomez <guillaume1.gomez@gmail.com>
Mon, 31 May 2021 13:20:45 +0000 (15:20 +0200)
src/librustdoc/html/render/context.rs
src/librustdoc/html/static/main.js
src/test/rustdoc-gui/sidebar.goml

index 8676efd9fa8b2549fb90ffba66e34fe0f149bbca..d80b2db00ac8ed8ff6d3429130cdf8bfde7f5e8e 100644 (file)
@@ -200,8 +200,15 @@ fn render_item(&self, it: &clean::Item, is_module: bool) -> String {
             )
         };
         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,
index 353c7125fc74ba171dfd930b9c5607da45a32359..1a15a444a701aaa3e5f297e3febb21e8922ffb39 100644 (file)
@@ -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");
index 7e6b8a9b965c3486ceca70be29874f120e35278f..5149b9331621655b0c0a80ee2afedfef7dae2747 100644 (file)
@@ -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")