Skip to content

Commit fb44aa2

Browse files
committed
---
yaml --- r: 113180 b: refs/heads/snap-stage3 c: eb084b1 h: refs/heads/master v: v3
1 parent bbb59e5 commit fb44aa2

File tree

2 files changed

+30
-25
lines changed

2 files changed

+30
-25
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: abdacecdf86b4b5a4f432560445a24e1c5f4751b
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: 71a52a2edc76527e3bba92378da633bb1fde3743
4+
refs/heads/snap-stage3: eb084b1818bb220928d1c99e241192f2cd98b069
55
refs/heads/try: 7c6c492fb2af9a85f21ff952942df3523b22fd17
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/src/librustdoc/html/render.rs

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -930,6 +930,23 @@ impl<'a> Item<'a> {
930930
clean::ModuleItem(..) => true, _ => false
931931
}
932932
}
933+
934+
fn link(&self) -> ~str {
935+
let mut path = Vec::new();
936+
clean_srcpath(self.item.source.filename.as_bytes(), |component| {
937+
path.push(component.to_owned());
938+
});
939+
let href = if self.item.source.loline == self.item.source.hiline {
940+
format!("{}", self.item.source.loline)
941+
} else {
942+
format!("{}-{}", self.item.source.loline, self.item.source.hiline)
943+
};
944+
format!("{root}src/{krate}/{path}.html\\#{href}",
945+
root = self.cx.root_path,
946+
krate = self.cx.layout.krate,
947+
path = path.connect("/"),
948+
href = href)
949+
}
933950
}
934951

935952
impl<'a> fmt::Show for Item<'a> {
@@ -977,23 +994,8 @@ impl<'a> fmt::Show for Item<'a> {
977994

978995
// Write `src` tag
979996
if self.cx.include_sources {
980-
let mut path = Vec::new();
981-
clean_srcpath(self.item.source.filename.as_bytes(), |component| {
982-
path.push(component.to_owned());
983-
});
984-
let href = if self.item.source.loline == self.item.source.hiline {
985-
format!("{}", self.item.source.loline)
986-
} else {
987-
format!("{}-{}", self.item.source.loline, self.item.source.hiline)
988-
};
989-
try!(write!(fmt.buf,
990-
"<a class='source' \
991-
href='{root}src/{krate}/{path}.html\\#{href}'>\
992-
[src]</a>",
993-
root = self.cx.root_path,
994-
krate = self.cx.layout.krate,
995-
path = path.connect("/"),
996-
href = href));
997+
try!(write!(fmt.buf, "<a class='source' href='{}'>[src]</a>",
998+
self.link()));
997999
}
9981000
try!(write!(fmt.buf, "</h1>\n"));
9991001

@@ -1138,16 +1140,19 @@ fn item_module(w: &mut Writer, cx: &Context,
11381140

11391141
match myitem.inner {
11401142
clean::StaticItem(ref s) | clean::ForeignStaticItem(ref s) => {
1141-
struct Initializer<'a>(&'a str);
1143+
struct Initializer<'a>(&'a str, Item<'a>);
11421144
impl<'a> fmt::Show for Initializer<'a> {
11431145
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1144-
let Initializer(s) = *self;
1146+
let Initializer(s, item) = *self;
11451147
if s.len() == 0 { return Ok(()); }
11461148
try!(write!(f.buf, "<code> = </code>"));
1147-
let tag = if s.contains("\n") { "pre" } else { "code" };
1148-
try!(write!(f.buf, "<{tag}>{}</{tag}>",
1149-
s.as_slice(), tag=tag));
1150-
Ok(())
1149+
if s.contains("\n") {
1150+
write!(f.buf,
1151+
"<a href='{}'>[definition]</a>",
1152+
item.link())
1153+
} else {
1154+
write!(f.buf, "<code>{}</code>", s.as_slice())
1155+
}
11511156
}
11521157
}
11531158

@@ -1160,7 +1165,7 @@ fn item_module(w: &mut Writer, cx: &Context,
11601165
VisSpace(myitem.visibility),
11611166
*myitem.name.get_ref(),
11621167
s.type_,
1163-
Initializer(s.expr),
1168+
Initializer(s.expr, Item { cx: cx, item: myitem }),
11641169
Markdown(blank(myitem.doc_value()))));
11651170
}
11661171

0 commit comments

Comments
 (0)