Skip to content

Commit 27fe23d

Browse files
committed
rustdoc: Refactor header writing a bit
1 parent bd63c39 commit 27fe23d

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

src/rustdoc/gen.rs

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,34 @@ import std::io::writer_util;
44
export write_markdown;
55

66
type ctxt = {
7-
w: io::writer
7+
w: io::writer,
8+
mutable depth: uint
89
};
910

1011
fn write_markdown(
1112
doc: doc::cratedoc,
1213
writer: io::writer
1314
) {
1415
let ctxt = {
15-
w: writer
16+
w: writer,
17+
mutable depth: 1u
1618
};
1719

18-
write_header(ctxt, doc.topmod.name);
19-
write_top_module(ctxt, doc.topmod);
20+
write_crate(ctxt, doc);
21+
}
22+
23+
fn write_header(ctxt: ctxt, title: str) {
24+
let hashes = str::from_chars(vec::init_elt('#', ctxt.depth));
25+
ctxt.w.write_line(#fmt("%s %s", hashes, title));
2026
}
2127

22-
fn write_header(ctxt: ctxt, name: str) {
23-
ctxt.w.write_line("# Crate " + name);
28+
fn write_crate(
29+
ctxt: ctxt,
30+
doc: doc::cratedoc
31+
) {
32+
ctxt.depth = 1u;
33+
write_header(ctxt, #fmt("Crate %s", doc.topmod.name));
34+
write_top_module(ctxt, doc.topmod);
2435
}
2536

2637
fn write_top_module(
@@ -54,7 +65,8 @@ fn write_fn(
5465
ctxt: ctxt,
5566
doc: doc::fndoc
5667
) {
57-
ctxt.w.write_line("## Function `" + doc.name + "`");
68+
ctxt.depth = 2u;
69+
write_header(ctxt, #fmt("Function `%s`", doc.name));
5870
alt doc.brief {
5971
some(brief) {
6072
ctxt.w.write_line(brief);

0 commit comments

Comments
 (0)