diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-03-08 21:24:50 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-08 21:24:50 +0100 |
| commit | 6c91ce27c3639b3b4b4b4c038dc535c02dc9dfbd (patch) | |
| tree | a445fbaac22905f22871fb97ce9cf01358f6e50d | |
| parent | 7c306f6dcd600b1fcc74439c780e8ebef338d84c (diff) | |
| parent | af664be4230d4052df32e7821a4a85ae9d13a474 (diff) | |
| download | rust-6c91ce27c3639b3b4b4b4c038dc535c02dc9dfbd.tar.gz rust-6c91ce27c3639b3b4b4b4c038dc535c02dc9dfbd.zip | |
Rollup merge of #108686 - notriddle:notriddle/jank-all, r=jsha
rustdoc: include link on all.html location header This avoids a subtle layout shift when switching from the crate page to all items. ## Before | index.html | all.html | |------------|----------| |  |  | ## After | index.html | all.html | |------------|----------| |  |  |
| -rw-r--r-- | src/librustdoc/html/render/context.rs | 4 | ||||
| -rw-r--r-- | tests/rustdoc-gui/sidebar.goml | 14 |
2 files changed, 15 insertions, 3 deletions
diff --git a/src/librustdoc/html/render/context.rs b/src/librustdoc/html/render/context.rs index 5e4a595627b..1030fe74747 100644 --- a/src/librustdoc/html/render/context.rs +++ b/src/librustdoc/html/render/context.rs @@ -600,9 +600,7 @@ impl<'tcx> FormatRenderer<'tcx> for Context<'tcx> { }; let all = shared.all.replace(AllTypes::new()); let mut sidebar = Buffer::html(); - if shared.cache.crate_version.is_some() { - write!(sidebar, "<h2 class=\"location\">Crate {}</h2>", crate_name) - }; + write!(sidebar, "<h2 class=\"location\"><a href=\"#\">Crate {}</a></h2>", crate_name); let mut items = Buffer::html(); sidebar_module_like(&mut items, all.item_sections()); diff --git a/tests/rustdoc-gui/sidebar.goml b/tests/rustdoc-gui/sidebar.goml index a6d51709019..473ab8fc960 100644 --- a/tests/rustdoc-gui/sidebar.goml +++ b/tests/rustdoc-gui/sidebar.goml @@ -149,3 +149,17 @@ assert-property: (".sidebar", {"clientWidth": "200"}) click: "#toggle-all-docs" assert-text: ("#toggle-all-docs", "[−]") assert-property: (".sidebar", {"clientWidth": "200"}) + +// Checks that all.html and index.html have their sidebar link in the same place. +goto: "file://" + |DOC_PATH| + "/test_docs/index.html" +store-property: (index_sidebar_width, ".sidebar .location a", "clientWidth") +store-property: (index_sidebar_height, ".sidebar .location a", "clientHeight") +store-property: (index_sidebar_x, ".sidebar .location a", "offsetTop") +store-property: (index_sidebar_y, ".sidebar .location a", "offsetLeft") +goto: "file://" + |DOC_PATH| + "/test_docs/all.html" +assert-property: (".sidebar .location a", { + "clientWidth": |index_sidebar_width|, + "clientHeight": |index_sidebar_height|, + "offsetTop": |index_sidebar_x|, + "offsetLeft": |index_sidebar_y|, +}) |
