,
diff --git a/src/librustdoc/html/render/context.rs b/src/librustdoc/html/render/context.rs
index 62c7dbe78ec..160233d99ac 100644
--- a/src/librustdoc/html/render/context.rs
+++ b/src/librustdoc/html/render/context.rs
@@ -528,13 +528,17 @@ impl<'tcx> FormatRenderer<'tcx> for Context<'tcx> {
if let Some(url) = playground_url {
playground = Some(markdown::Playground { crate_name: Some(krate.name(tcx)), url });
}
+ let krate_version = cache.crate_version.as_deref().unwrap_or_default();
+ let (krate_version, krate_version_extra) =
+ krate_version.split_once(" ").unwrap_or((krate_version, ""));
let mut layout = layout::Layout {
logo: String::new(),
favicon: String::new(),
external_html,
default_settings,
krate: krate.name(tcx).to_string(),
- krate_version: cache.crate_version.as_deref().unwrap_or_default().to_string(),
+ krate_version: krate_version.to_string(),
+ krate_version_extra: krate_version_extra.to_string(),
css_file_extension: extension_css,
scrape_examples_extension: !call_locations.is_empty(),
};
diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css
index 6a6747affb2..5e1bccb9b5b 100644
--- a/src/librustdoc/html/static/css/rustdoc.css
+++ b/src/librustdoc/html/static/css/rustdoc.css
@@ -492,6 +492,7 @@ ul.block, .block li {
}
.sidebar-elems,
+.sidebar > .version,
.sidebar > h2 {
padding-left: 24px;
}
diff --git a/src/librustdoc/html/static/js/main.js b/src/librustdoc/html/static/js/main.js
index 5e852af2196..25e9da57a05 100644
--- a/src/librustdoc/html/static/js/main.js
+++ b/src/librustdoc/html/static/js/main.js
@@ -51,12 +51,13 @@ function setMobileTopbar() {
// but with the current code it's hard to get the right information in the right place.
const mobileTopbar = document.querySelector(".mobile-topbar");
const locationTitle = document.querySelector(".sidebar h2.location");
- if (mobileLocationTitle) {
+ if (mobileTopbar) {
const mobileTitle = document.createElement("h2");
+ mobileTitle.className = "location";
if (hasClass(document.body, "crate")) {
- mobileLocationTitle.innerText = `Crate ${window.currentCrate}`;
+ mobileTitle.innerText = `Crate ${window.currentCrate}`;
} else if (locationTitle) {
- mobileLocationTitle.innerHTML = locationTitle.innerHTML;
+ mobileTitle.innerHTML = locationTitle.innerHTML;
}
mobileTopbar.appendChild(mobileTitle);
}
diff --git a/src/librustdoc/html/templates/page.html b/src/librustdoc/html/templates/page.html
index 0987010b940..4a7c06e63c9 100644
--- a/src/librustdoc/html/templates/page.html
+++ b/src/librustdoc/html/templates/page.html
@@ -101,8 +101,11 @@
{% if !layout.krate_version.is_empty() %}
{{+ layout.krate_version}}
{% endif %}
-
-
+ {# #}
+ {# #}
+ {% if !layout.krate_version_extra.is_empty() %}
+ {{+ layout.krate_version_extra}}
{# #}
+ {% endif %}
{% endif %}
{{ sidebar|safe }}
{# #}
diff --git a/tests/rustdoc/crate-version-extra.rs b/tests/rustdoc/crate-version-extra.rs
new file mode 100644
index 00000000000..72a2c4ba5f7
--- /dev/null
+++ b/tests/rustdoc/crate-version-extra.rs
@@ -0,0 +1,7 @@
+// compile-flags: '--crate-version=1.3.37-nightly (203c57dbe 2023-09-17)'
+
+#![crate_name="foo"]
+
+// main version next to logo, extra version data below it
+// @has 'foo/index.html' '//h2/span[@class="version"]' '1.3.37-nightly'
+// @has 'foo/index.html' '//nav[@class="sidebar"]/div[@class="version"]' '(203c57dbe 2023-09-17)'