diff --git a/src/librustdoc/html/render/write_shared.rs b/src/librustdoc/html/render/write_shared.rs
index 1dd0917699bf4..c1a83ad5820cb 100644
--- a/src/librustdoc/html/render/write_shared.rs
+++ b/src/librustdoc/html/render/write_shared.rs
@@ -268,10 +268,18 @@ pub(super) fn write_shared(
// Maybe we can change the representation to move this out of main.js?
write_minify(
"main.js",
- static_files::MAIN_JS.replace(
- "/* INSERT THEMES HERE */",
- &format!(" = {}", serde_json::to_string(&themes).unwrap()),
- ),
+ static_files::MAIN_JS
+ .replace(
+ "/* INSERT THEMES HERE */",
+ &format!(" = {}", serde_json::to_string(&themes).unwrap()),
+ )
+ .replace(
+ "/* INSERT RUSTDOC_VERSION HERE */",
+ &format!(
+ "rustdoc {}",
+ rustc_interface::util::version_str().unwrap_or("unknown version")
+ ),
+ ),
cx,
options,
)?;
diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css
index 2d4bfc62af68e..eb7cc9309f416 100644
--- a/src/librustdoc/html/static/css/rustdoc.css
+++ b/src/librustdoc/html/static/css/rustdoc.css
@@ -928,15 +928,24 @@ body.blur > :not(#help) {
display: block;
margin-right: 0.5rem;
}
-#help > div > span {
+#help span.top, #help span.bottom {
text-align: center;
display: block;
- margin: 10px 0;
font-size: 18px;
- border-bottom: 1px solid #ccc;
+
+}
+#help span.top {
+ text-align: center;
+ display: block;
+ margin: 10px 0;
+ border-bottom: 1px solid;
padding-bottom: 4px;
margin-bottom: 6px;
}
+#help span.bottom {
+ clear: both;
+ border-top: 1px solid;
+}
#help dd { margin: 5px 35px; }
#help .infos { padding-left: 0; }
#help h1, #help h2 { margin-top: 0; }
diff --git a/src/librustdoc/html/static/css/themes/ayu.css b/src/librustdoc/html/static/css/themes/ayu.css
index eada8f4a04dae..c79801e830876 100644
--- a/src/librustdoc/html/static/css/themes/ayu.css
+++ b/src/librustdoc/html/static/css/themes/ayu.css
@@ -286,8 +286,8 @@ details.undocumented > summary::before {
border-radius: 4px;
}
-#help > div > span {
- border-bottom-color: #5c6773;
+#help span.bottom, #help span.top {
+ border-color: #5c6773;
}
.since {
diff --git a/src/librustdoc/html/static/css/themes/dark.css b/src/librustdoc/html/static/css/themes/dark.css
index d9348be6994e2..d2e54070acd68 100644
--- a/src/librustdoc/html/static/css/themes/dark.css
+++ b/src/librustdoc/html/static/css/themes/dark.css
@@ -242,8 +242,8 @@ details.undocumented > summary::before {
border-color: #bfbfbf;
}
-#help > div > span {
- border-bottom-color: #bfbfbf;
+#help span.bottom, #help span.top {
+ border-color: #bfbfbf;
}
#help dt {
diff --git a/src/librustdoc/html/static/css/themes/light.css b/src/librustdoc/html/static/css/themes/light.css
index 0ffe5929ea593..25d810560c146 100644
--- a/src/librustdoc/html/static/css/themes/light.css
+++ b/src/librustdoc/html/static/css/themes/light.css
@@ -232,8 +232,8 @@ details.undocumented > summary::before {
border-color: #bfbfbf;
}
-#help > div > span {
- border-bottom-color: #bfbfbf;
+#help span.bottom, #help span.top {
+ border-color: #bfbfbf;
}
.since {
diff --git a/src/librustdoc/html/static/js/main.js b/src/librustdoc/html/static/js/main.js
index 1eebd39256459..e396fd9d288db 100644
--- a/src/librustdoc/html/static/js/main.js
+++ b/src/librustdoc/html/static/js/main.js
@@ -911,6 +911,7 @@ function hideThemeButtonState() {
});
var book_info = document.createElement("span");
+ book_info.className = "top";
book_info.innerHTML = "You can find more information in \
the rustdoc book.";
@@ -961,6 +962,14 @@ function hideThemeButtonState() {
container.appendChild(div_shortcuts);
container.appendChild(div_infos);
+ var rustdoc_version = document.createElement("span");
+ rustdoc_version.className = "bottom";
+ var rustdoc_version_code = document.createElement("code");
+ rustdoc_version_code.innerText = "/* INSERT RUSTDOC_VERSION HERE */";
+ rustdoc_version.appendChild(rustdoc_version_code);
+
+ container.appendChild(rustdoc_version);
+
popup.appendChild(container);
insertAfter(popup, searchState.outputElement());
// So that it's only built once and then it'll do nothing when called!