Skip to content

Commit 883b819

Browse files
authored
Rollup merge of rust-lang#55191 - GuillaumeGomez:fix-sub-variant, r=QuietMisdreavus
Fix sub-variant doc display Fixes rust-lang#54758. <img width="1440" alt="screen shot 2018-10-19 at 01 34 11" src="https://user-images.githubusercontent.com/3050060/47189939-43481d00-d33f-11e8-868f-cf479fc79e62.png"> r? @QuietMisdreavus
2 parents b9763de + 2fd378b commit 883b819

File tree

3 files changed

+39
-17
lines changed

3 files changed

+39
-17
lines changed

src/librustdoc/html/render.rs

+8-9
Original file line numberDiff line numberDiff line change
@@ -3379,10 +3379,10 @@ fn item_enum(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
33793379
let variant_id = cx.derive_id(format!("{}.{}.fields",
33803380
ItemType::Variant,
33813381
variant.name.as_ref().unwrap()));
3382-
write!(w, "<span class='docblock autohide sub-variant' id='{id}'>",
3382+
write!(w, "<span class='autohide sub-variant' id='{id}'>",
33833383
id = variant_id)?;
3384-
write!(w, "<h3 class='fields'>Fields of <code>{name}</code></h3>\n
3385-
<table>", name = variant.name.as_ref().unwrap())?;
3384+
write!(w, "<h3>Fields of <b>{name}</b></h3><div>",
3385+
name = variant.name.as_ref().unwrap())?;
33863386
for field in &s.fields {
33873387
use clean::StructFieldItem;
33883388
if let StructFieldItem(ref ty) = field.inner {
@@ -3394,19 +3394,18 @@ fn item_enum(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
33943394
ItemType::Variant.name_space(),
33953395
field.name.as_ref().unwrap(),
33963396
ItemType::StructField.name_space()));
3397-
write!(w, "<tr><td \
3398-
id='{id}'>\
3399-
<span id='{ns_id}' class='invisible'>\
3400-
<code>{f}:&nbsp;{t}</code></span></td><td>",
3397+
write!(w, "<span id=\"{id}\" class=\"variant small-section-header\">\
3398+
<a href=\"#{id}\" class=\"anchor field\"></a>\
3399+
<span id='{ns_id}' class='invisible'><code>{f}:&nbsp;{t}\
3400+
</code></span></span>",
34013401
id = id,
34023402
ns_id = ns_id,
34033403
f = field.name.as_ref().unwrap(),
34043404
t = *ty)?;
34053405
document(w, cx, field)?;
3406-
write!(w, "</td></tr>")?;
34073406
}
34083407
}
3409-
write!(w, "</table></span>")?;
3408+
write!(w, "</div></span>")?;
34103409
}
34113410
render_stability_since(w, variant, it)?;
34123411
}

src/librustdoc/html/static/main.js

+10-7
Original file line numberDiff line numberDiff line change
@@ -1886,7 +1886,7 @@
18861886
if (hasClass(relatedDoc, "stability")) {
18871887
relatedDoc = relatedDoc.nextElementSibling;
18881888
}
1889-
if (hasClass(relatedDoc, "docblock")) {
1889+
if (hasClass(relatedDoc, "docblock") || hasClass(relatedDoc, "sub-variant")) {
18901890
var action = mode;
18911891
if (action === "toggle") {
18921892
if (hasClass(relatedDoc, "hidden-by-usual-hider")) {
@@ -2094,15 +2094,13 @@
20942094
}
20952095

20962096
var hideItemDeclarations = getCurrentValue('rustdoc-item-declarations') === "false";
2097-
onEach(document.getElementsByClassName('docblock'), function(e) {
2097+
function buildToggleWrapper(e) {
20982098
if (hasClass(e, 'autohide')) {
20992099
var wrap = e.previousElementSibling;
21002100
if (wrap && hasClass(wrap, 'toggle-wrapper')) {
21012101
var toggle = wrap.childNodes[0];
2102-
var extra = false;
2103-
if (e.childNodes[0].tagName === 'H3') {
2104-
extra = true;
2105-
}
2102+
var extra = e.childNodes[0].tagName === 'H3';
2103+
21062104
e.style.display = 'none';
21072105
addClass(wrap, 'collapsed');
21082106
onEach(toggle.getElementsByClassName('inner'), function(e) {
@@ -2127,6 +2125,8 @@
21272125
if (hideItemDeclarations === false) {
21282126
extraClass = 'collapsed';
21292127
}
2128+
} else if (hasClass(e, "sub-variant")) {
2129+
otherMessage = '&nbsp;Show&nbsp;fields';
21302130
} else if (hasClass(e, "non-exhaustive")) {
21312131
otherMessage = '&nbsp;This&nbsp;';
21322132
if (hasClass(e, "non-exhaustive-struct")) {
@@ -2150,7 +2150,10 @@
21502150
collapseDocs(e.previousSibling.childNodes[0], "toggle");
21512151
}
21522152
}
2153-
});
2153+
}
2154+
2155+
onEach(document.getElementsByClassName('docblock'), buildToggleWrapper);
2156+
onEach(document.getElementsByClassName('sub-variant'), buildToggleWrapper);
21542157

21552158
function createToggleWrapper(tog) {
21562159
var span = document.createElement('span');

src/librustdoc/html/static/rustdoc.css

+21-1
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,10 @@ h4 > code, h3 > code, .invisible > code {
517517
margin-top: -13px;
518518
}
519519

520+
.sub-variant > div > .stability {
521+
margin-top: initial;
522+
}
523+
520524
.content .stability::before {
521525
content: '˪';
522526
font-size: 30px;
@@ -866,7 +870,23 @@ span.since {
866870
}
867871

868872
.sub-variant, .sub-variant > h3 {
869-
margin-top: 0 !important;
873+
margin-top: 1px !important;
874+
}
875+
876+
#main > .sub-variant > h3 {
877+
font-size: 15px;
878+
margin-left: 25px;
879+
margin-bottom: 5px;
880+
}
881+
882+
.sub-variant > div {
883+
margin-left: 20px;
884+
margin-bottom: 10px;
885+
}
886+
887+
.sub-variant > div > span {
888+
display: block;
889+
position: relative;
870890
}
871891

872892
.toggle-label {

0 commit comments

Comments
 (0)