about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJustus K <justus.k@protonmail.com>2021-05-14 22:45:00 +0200
committerJustus K <justus.k@protonmail.com>2021-05-15 19:26:36 +0200
commitaaf0ff83fb5473a1bd73f9062e168a7e183c444f (patch)
tree5734a46402c8f15ad986ca0c91ba9ddcd94c0385
parent75da570d784a798a34ff1e5048cd9a6a2fb23170 (diff)
downloadrust-aaf0ff83fb5473a1bd73f9062e168a7e183c444f.tar.gz
rust-aaf0ff83fb5473a1bd73f9062e168a7e183c444f.zip
Call `initSidebarItems` in root module of crate
-rw-r--r--src/librustdoc/html/render/mod.rs11
-rw-r--r--src/librustdoc/html/render/write_shared.rs2
-rw-r--r--src/librustdoc/html/static/sidebar-items.js1
-rw-r--r--src/librustdoc/html/static_files.rs3
4 files changed, 14 insertions, 3 deletions
diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs
index 5b54b32e4dd..f4a84efb597 100644
--- a/src/librustdoc/html/render/mod.rs
+++ b/src/librustdoc/html/render/mod.rs
@@ -1745,12 +1745,17 @@ fn print_sidebar(cx: &Context<'_>, it: &clean::Item, buffer: &mut Buffer) {
         ty = it.type_(),
         path = relpath
     );
+
     if parentlen == 0 {
-        // There is no sidebar-items.js beyond the crate root path
-        // FIXME maybe dynamic crate loading can be merged here
+        write!(
+            buffer,
+            "<script defer src=\"{}sidebar-items{}.js\"></script>",
+            relpath, cx.shared.resource_suffix
+        );
     } else {
-        write!(buffer, "<script defer src=\"{path}sidebar-items.js\"></script>", path = relpath);
+        write!(buffer, "<script defer src=\"{}sidebar-items.js\"></script>", relpath);
     }
+
     // Closes sidebar-elems div.
     buffer.write_str("</div>");
 }
diff --git a/src/librustdoc/html/render/write_shared.rs b/src/librustdoc/html/render/write_shared.rs
index d0518cb6862..ec54d94726e 100644
--- a/src/librustdoc/html/render/write_shared.rs
+++ b/src/librustdoc/html/render/write_shared.rs
@@ -225,6 +225,8 @@ pub(super) fn write_shared(
     )?;
     write_minify("search.js", static_files::SEARCH_JS)?;
     write_minify("settings.js", static_files::SETTINGS_JS)?;
+    write_minify("sidebar-items.js", static_files::sidebar::ITEMS)?;
+
     if cx.shared.include_sources {
         write_minify("source-script.js", static_files::sidebar::SOURCE_SCRIPT)?;
     }
diff --git a/src/librustdoc/html/static/sidebar-items.js b/src/librustdoc/html/static/sidebar-items.js
new file mode 100644
index 00000000000..81172ba0d92
--- /dev/null
+++ b/src/librustdoc/html/static/sidebar-items.js
@@ -0,0 +1 @@
+initSidebarItems({});
diff --git a/src/librustdoc/html/static_files.rs b/src/librustdoc/html/static_files.rs
index 1abb1f7294a..4e3d5ff0a4a 100644
--- a/src/librustdoc/html/static_files.rs
+++ b/src/librustdoc/html/static_files.rs
@@ -130,4 +130,7 @@ crate mod source_code_pro {
 crate mod sidebar {
     /// File script to handle sidebar.
     crate static SOURCE_SCRIPT: &str = include_str!("static/source-script.js");
+
+    /// Top Level sidebar items script which will load a sidebar without items.
+    crate static ITEMS: &str = include_str!("static/sidebar-items.js");
 }