Skip to content

Commit 4ad48c8

Browse files
committed
Added copy button to crate version
1 parent 86d69c7 commit 4ad48c8

File tree

3 files changed

+40
-1
lines changed

3 files changed

+40
-1
lines changed

src/librustdoc/html/static/css/rustdoc.css

+26
Original file line numberDiff line numberDiff line change
@@ -644,6 +644,29 @@ ul.block, .block li, .block ul {
644644
padding-left: var(--sidebar-elems-left-padding);
645645
}
646646

647+
#copy-cargo-snippet {
648+
color: var(--main-color);
649+
background: var(--sidebar-background-color);
650+
margin-left: 10px;
651+
padding: 0;
652+
padding-left: 2px;
653+
border: 0;
654+
font-size: 0;
655+
656+
scale: 80%;
657+
justify-content: center;
658+
}
659+
#copy-cargo-snippet::before {
660+
filter: var(--copy-path-img-filter);
661+
content: var(--clipboard-image);
662+
}
663+
#copy-cargo-snippet:hover::before {
664+
filter: var(--copy-path-img-hover-filter);
665+
}
666+
#copy-cargo-snippet.clicked::before {
667+
content: var(--checkmark-image);
668+
}
669+
647670
.sidebar a {
648671
color: var(--sidebar-link-color);
649672
}
@@ -766,6 +789,9 @@ ul.block, .block li, .block ul {
766789
font-weight: normal;
767790
font-size: 1rem;
768791
overflow-wrap: break-word;
792+
793+
display: flex;
794+
align-items: center;
769795
}
770796

771797
.sidebar-crate + .version {

src/librustdoc/html/static/js/main.js

+13
Original file line numberDiff line numberDiff line change
@@ -1842,6 +1842,19 @@ href="https://doc.rust-lang.org/${channel}/rustdoc/read-documentation/search.htm
18421842
copyButtonAnimation(but);
18431843
};
18441844

1845+
// Copy button that appears next to the crate version.
1846+
const crate_version_copy_button = document.getElementById("copy-cargo-snippet");
1847+
if (!crate_version_copy_button) {
1848+
return;
1849+
}
1850+
crate_version_copy_button.onclick = () => {
1851+
let crate_version = crate_version_copy_button.parentElement.textContent;
1852+
let snippet = `${window.currentCrate} = "${crate_version}"`;
1853+
1854+
copyContentToClipboard(snippet);
1855+
copyButtonAnimation(crate_version_copy_button);
1856+
};
1857+
18451858
// Copy buttons on code examples.
18461859
function copyCode(codeElem) {
18471860
if (!codeElem) {

src/librustdoc/html/templates/page.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@
100100
<h2> {# #}
101101
<a href="{{page.root_path|safe}}{{display_krate_with_trailing_slash|safe}}index.html">{{display_krate|wrapped|safe}}</a>
102102
{% if !display_krate_version_number.is_empty() %}
103-
<span class="version">{{+ display_krate_version_number}}</span>
103+
<span class="version">{{+ display_krate_version_number}}<button id="copy-cargo-snippet" title="Copy Cargo.toml snippet to clipboard">{# #}</button></span>
104104
{% endif %}
105105
</h2> {# #}
106106
</div>

0 commit comments

Comments
 (0)