From 20eda22cbf36b5e9bf9fe28c53790c30fb31c9d3 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Thu, 25 Nov 2021 15:33:38 +0100 Subject: [PATCH 1/2] Update the first heading indent rule so it is only applied on the first heading of the top doc block --- src/librustdoc/html/static/css/rustdoc.css | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/librustdoc/html/static/css/rustdoc.css b/src/librustdoc/html/static/css/rustdoc.css index bfad510695131..479b5210f9e09 100644 --- a/src/librustdoc/html/static/css/rustdoc.css +++ b/src/librustdoc/html/static/css/rustdoc.css @@ -1129,15 +1129,17 @@ h3.variant { margin-top: 3px; } -.docblock > .section-header:first-child { +.top-doc .docblock > .section-header:first-child { margin-left: 15px; - margin-top: 0; } - -.docblock > .section-header:first-child:hover > a:before { +.top-doc .docblock > .section-header:first-child:hover > a:before { left: -10px; } +.docblock > .section-header:first-child { + margin-top: 0; +} + :target > code, :target > .code-header { opacity: 1; } From 23427567b2030dfe1a8e99cd86d2602517118035 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Thu, 25 Nov 2021 15:39:04 +0100 Subject: [PATCH 2/2] Update test for anchors and headings position --- src/test/rustdoc-gui/anchors.goml | 46 ++++++++++++++++++++++- src/test/rustdoc-gui/src/test_docs/lib.rs | 2 + 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/src/test/rustdoc-gui/anchors.goml b/src/test/rustdoc-gui/anchors.goml index 5f809f9aa4ed4..8910cbbbb256c 100644 --- a/src/test/rustdoc-gui/anchors.goml +++ b/src/test/rustdoc-gui/anchors.goml @@ -1,4 +1,4 @@ -// This test is to ensure that the anchors (`§`) have the expected color. +// This test is to ensure that the anchors (`§`) have the expected color and position. goto: file://|DOC_PATH|/test_docs/struct.HeavilyDocumentedStruct.html show-text: true @@ -28,3 +28,47 @@ assert-css: ("h2#implementations a.anchor", {"color": "rgb(0, 0, 0)"}) // Same thing with the impl block title. move-cursor-to: "#impl" assert-css: ("#impl a.anchor", {"color": "rgb(0, 0, 0)"}) + +// Now we check the positions: only the first heading of the top doc comment should +// have a different position. +move-cursor-to: ".top-doc .docblock .section-header:first-child" +assert-css: ( + ".top-doc .docblock .section-header:first-child > a::before", + {"left": "-10px", "padding-right": "10px"} +) +// We also check that the heading itself has a different indent. +assert-css: (".top-doc .docblock .section-header:first-child", {"margin-left": "15px"}) + +move-cursor-to: ".top-doc .docblock .section-header:not(:first-child)" +assert-css: ( + ".top-doc .docblock .section-header:not(:first-child) > a::before", + {"left": "-25px", "padding-right": "10px"} +) +assert-css: (".top-doc .docblock .section-header:not(:first-child)", {"margin-left": "0px"}) + +// Now let's check some other docblock headings... +// First the impl block docs. +move-cursor-to: "#title-for-struct-impl-doc" +assert-css: ( + "#title-for-struct-impl-doc > a::before", + {"left": "-25px", "padding-right": "10px"} +) +assert-css: ("#title-for-struct-impl-doc", {"margin-left": "0px"}) +// Now a method docs. +move-cursor-to: "#title-for-struct-impl-item-doc" +assert-css: ( + "#title-for-struct-impl-item-doc > a::before", + {"left": "-25px", "padding-right": "10px"} +) +assert-css: ("#title-for-struct-impl-item-doc", {"margin-left": "0px"}) + +// Finally, we want to ensure that if the first element of the doc block isn't a heading, +// if there is a heading afterwards, it won't have the indent. +goto: file://|DOC_PATH|/test_docs/enum.WhoLetTheDogOut.html + +move-cursor-to: ".top-doc .docblock .section-header" +assert-css: ( + ".top-doc .docblock .section-header > a::before", + {"left": "-25px", "padding-right": "10px"} +) +assert-css: (".top-doc .docblock .section-header", {"margin-left": "0px"}) diff --git a/src/test/rustdoc-gui/src/test_docs/lib.rs b/src/test/rustdoc-gui/src/test_docs/lib.rs index 458bcc4780c6c..9b37703dded4b 100644 --- a/src/test/rustdoc-gui/src/test_docs/lib.rs +++ b/src/test/rustdoc-gui/src/test_docs/lib.rs @@ -47,6 +47,8 @@ impl AsRef for Foo { } /// Just a normal enum. +/// +/// # title! #[doc(alias = "ThisIsAnAlias")] pub enum WhoLetTheDogOut { /// Woof!