diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css index 2c17fd54006f5..3e89b518ad2c7 100644 --- a/src/librustdoc/html/static/css/rustdoc.css +++ b/src/librustdoc/html/static/css/rustdoc.css @@ -644,6 +644,29 @@ ul.block, .block li, .block ul { padding-left: var(--sidebar-elems-left-padding); } +#copy-cargo-snippet { + color: var(--main-color); + background: var(--sidebar-background-color); + margin-left: 10px; + padding: 0; + padding-left: 2px; + border: 0; + font-size: 0; + + scale: 80%; + justify-content: center; +} +#copy-cargo-snippet::before { + filter: var(--copy-path-img-filter); + content: var(--clipboard-image); +} +#copy-cargo-snippet:hover::before { + filter: var(--copy-path-img-hover-filter); +} +#copy-cargo-snippet.clicked::before { + content: var(--checkmark-image); +} + .sidebar a { color: var(--sidebar-link-color); } @@ -766,6 +789,9 @@ ul.block, .block li, .block ul { font-weight: normal; font-size: 1rem; overflow-wrap: break-word; + + display: flex; + align-items: center; } .sidebar-crate + .version { diff --git a/src/librustdoc/html/static/js/main.js b/src/librustdoc/html/static/js/main.js index 984b0877d8de2..dbaa9d49847a8 100644 --- a/src/librustdoc/html/static/js/main.js +++ b/src/librustdoc/html/static/js/main.js @@ -1842,6 +1842,19 @@ href="https://doc.rust-lang.org/${channel}/rustdoc/read-documentation/search.htm copyButtonAnimation(but); }; + // Copy button that appears next to the crate version. + const crate_version_copy_button = document.getElementById("copy-cargo-snippet"); + if (!crate_version_copy_button) { + return; + } + crate_version_copy_button.onclick = () => { + const crate_version = crate_version_copy_button.parentElement.textContent; + const snippet = `${window.currentCrate} = "${crate_version}"`; + + copyContentToClipboard(snippet); + copyButtonAnimation(crate_version_copy_button); + }; + // Copy buttons on code examples. function copyCode(codeElem) { if (!codeElem) { diff --git a/src/librustdoc/html/templates/page.html b/src/librustdoc/html/templates/page.html index a05d6ca831329..c012a4416683e 100644 --- a/src/librustdoc/html/templates/page.html +++ b/src/librustdoc/html/templates/page.html @@ -100,7 +100,7 @@

{# #} {{display_krate|wrapped|safe}} {% if !display_krate_version_number.is_empty() %} - {{+ display_krate_version_number}} + {{+ display_krate_version_number}} {% endif %}

{# #}