Rollup merge of #118677 - GuillaumeGomez:doc_cfg-display, r=notriddle

[rustdoc] Fix display of features

Fixes https://github.com/rust-lang/rust/issues/118615.

It now looks like this:

![image](https://github.com/rust-lang/rust/assets/3050060/6e77204e-0706-44a3-89ae-2dbd1934ebbc)

We can't use flex without breaking the flow, meaning we can't vertically align items as we want. Because of that, the `min-height` was problematic as it rendered weirdly and therefore needed to be removed.

r? `@notriddle`
This commit is contained in:
Matthias Krüger 2023-12-08 06:44:41 +01:00 committed by GitHub
commit fa724ccc6d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 43 additions and 9 deletions

View File

@ -1081,15 +1081,9 @@ so that we can apply CSS-filters to change the arrow color in themes */
}
.item-info .stab {
/* This min-height is needed to unify the height of the stab elements because some of them
have emojis.
*/
min-height: 36px;
display: flex;
display: block;
padding: 3px;
margin-bottom: 5px;
align-items: center;
vertical-align: text-bottom;
}
.item-name .stab {
margin-left: 0.3125em;
@ -1112,17 +1106,26 @@ so that we can apply CSS-filters to change the arrow color in themes */
color: var(--stab-code-color);
}
.stab .emoji {
.stab .emoji, .item-info .stab::before {
font-size: 1.25rem;
}
.stab .emoji {
margin-right: 0.3rem;
}
.item-info .stab::before {
/* ensure badges with emoji and without it have same height */
content: "\0";
width: 0;
display: inline-block;
color: transparent;
}
/* Black one-pixel outline around emoji shapes */
.emoji {
text-shadow:
1px 0 0 black,
-1px 0 0 black,
0 1px 0 black,
0 1px 0 black,
0 -1px 0 black;
}

View File

@ -8,7 +8,22 @@ assert-size: (".item-info", {"width": 840})
assert-size: (".item-info .stab", {"width": 289})
assert-position: (".item-info .stab", {"x": 245})
// We check that the display of the feature elements is not broken. It serves as regression
// test for <https://github.com/rust-lang/rust/issues/118615>.
set-window-size: (850, 800)
store-position: (
"//*[@class='stab portability']//code[text()='Win32_System']",
{"x": first_line_x, "y": first_line_y},
)
store-position: (
"//*[@class='stab portability']//code[text()='Win32_System_Diagnostics']",
{"x": second_line_x, "y": second_line_y},
)
assert: |first_line_x| != |second_line_x| && |first_line_x| == 516 && |second_line_x| == 272
assert: |first_line_y| != |second_line_y| && |first_line_y| == 688 && |second_line_y| == 711
// Now we ensure that they're not rendered on the same line.
set-window-size: (1100, 800)
go-to: "file://" + |DOC_PATH| + "/lib2/trait.Trait.html"
// We first ensure that there are two item info on the trait.
assert-count: ("#main-content > .item-info .stab", 2)

View File

@ -6,6 +6,13 @@ edition = "2018"
[lib]
path = "lib.rs"
[features]
Win32 = ["Win32_System"]
Win32_System = ["Win32_System_Diagnostics"]
Win32_System_Diagnostics = ["Win32_System_Diagnostics_Debug"]
Win32_System_Diagnostics_Debug = []
default = ["Win32"]
[dependencies]
implementors = { path = "./implementors" }
http = { path = "./http" }

View File

@ -1,6 +1,7 @@
// ignore-tidy-linelength
#![feature(doc_cfg)]
#![feature(doc_auto_cfg)]
pub mod another_folder;
pub mod another_mod;
@ -28,6 +29,14 @@ impl Foo {
/// Some documentation
/// # A Heading
pub fn a_method(&self) {}
#[cfg(all(
feature = "Win32",
feature = "Win32_System",
feature = "Win32_System_Diagnostics",
feature = "Win32_System_Diagnostics_Debug"
))]
pub fn lot_of_features() {}
}
#[doc(cfg(feature = "foo-method"))]