Skip to content

Commit

Permalink
rustdoc: hardcode each header as a link.
Browse files Browse the repository at this point in the history
This avoids having to include JS in the guide/tutorial/manual pages just
to get the headers being links. The on-hover behaviour showing the
little section marker § is preserved, because that gives a useful hint
that the heading is a link.
  • Loading branch information
huonw committed Mar 9, 2014
1 parent f22c96c commit 7a70ec1
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 14 deletions.
3 changes: 2 additions & 1 deletion src/librustdoc/html/markdown.rs
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,8 @@ pub fn render(w: &mut io::Writer, s: &str, print_toc: bool) -> fmt::Result {
};

// Render the HTML
let text = format!(r#"<h{lvl} id="{id}">{sec_len,plural,=0{}other{{sec} }}{}</h{lvl}>"#,
let text = format!(r#"<h{lvl} id="{id}"><a
href="\#{id}">{sec_len,plural,=0{}other{{sec} }}{}</a></h{lvl}>"#,
s, lvl = level, id = id,
sec_len = sec.len(), sec = sec);

Expand Down
3 changes: 2 additions & 1 deletion src/librustdoc/html/render.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1064,7 +1064,8 @@ fn item_module(w: &mut Writer, cx: &Context,
clean::ForeignStaticItem(..) => ("ffi-statics", "Foreign Statics"),
clean::MacroItem(..) => ("macros", "Macros"),
};
try!(write!(w, "<h2 id='{}'>{}</h2>\n<table>", short, name));
try!(write!(w, "<h2 id='{id}'><a href=\"\\#{id}\">{name}</a></h2>\n<table>",
id = short, name = name));
}

match myitem.inner {
Expand Down
19 changes: 13 additions & 6 deletions src/librustdoc/html/static/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -320,9 +320,16 @@ pre.rust .string { color: #718C00; }
pre.rust .lifetime { color: #C13928; }
pre.rust .attribute, pre.rust .attribute .ident { color: #C82829; }

h1 a.anchor,
h2 a.anchor,
h3 a.anchor { display: none; }
h1:hover a.anchor,
h2:hover a.anchor,
h3:hover a.anchor { display: inline-block; }
h1:hover a:after,
h2:hover a:after,
h3:hover a:after,
h4:hover a:after,
h5:hover a:after,
h6:hover a:after {
content: ' § ';
}

h1.fqn:hover a:after,
:hover a.fnname:after {
content: none;
}
6 changes: 0 additions & 6 deletions src/librustdoc/html/static/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -600,10 +600,4 @@

initSearch(searchIndex);

$.each($('h1, h2, h3'), function(idx, element) {
if ($(element).attr('id') != undefined) {
$(element).append('<a href="#' + $(element).attr('id') + '" ' +
'class="anchor"> § </a>');
}
});
}());

0 comments on commit 7a70ec1

Please sign in to comment.