@@ -18,39 +18,37 @@ fn mk_pass(
18
18
}
19
19
20
20
type ctxt = {
21
- w: io:: writer,
22
- mutable depth: uint
21
+ w: io:: writer
23
22
} ;
24
23
25
24
fn write_markdown (
26
25
doc : doc:: cratedoc ,
27
26
writer : io:: writer
28
27
) {
29
28
let ctxt = {
30
- w: writer,
31
- mutable depth: 1 u
29
+ w: writer
32
30
} ;
33
31
34
32
write_crate ( ctxt, doc) ;
35
33
}
36
34
37
- fn write_header ( ctxt : ctxt , title : str ) {
38
- let hashes = str :: from_chars ( vec :: init_elt ( '#' , ctxt . depth ) ) ;
39
- ctxt . w . write_line ( # fmt ( "%s %s" , hashes , title ) ) ;
40
- ctxt . w . write_line ( "" ) ;
35
+ tag hlvl {
36
+ h1 = 1 ;
37
+ h2 = 2 ;
38
+ h3 = 3 ;
41
39
}
42
40
43
- fn subsection ( ctxt : ctxt , f : fn & ( ) ) {
44
- ctxt . depth += 1 u ;
45
- f ( ) ;
46
- ctxt. depth -= 1 u ;
41
+ fn write_header ( ctxt : ctxt , lvl : hlvl , title : str ) {
42
+ let hashes = str :: from_chars ( vec :: init_elt ( '#' , lvl as uint ) ) ;
43
+ ctxt . w . write_line ( # fmt ( "%s %s" , hashes , title ) ) ;
44
+ ctxt. w . write_line ( "" ) ;
47
45
}
48
46
49
47
fn write_crate (
50
48
ctxt : ctxt ,
51
49
doc : doc:: cratedoc
52
50
) {
53
- write_header ( ctxt, #fmt ( "Crate %s" , doc. topmod . name ) ) ;
51
+ write_header ( ctxt, h1 , #fmt ( "Crate %s" , doc. topmod . name ) ) ;
54
52
write_top_module ( ctxt, doc. topmod ) ;
55
53
}
56
54
@@ -65,7 +63,7 @@ fn write_mod(
65
63
ctxt : ctxt ,
66
64
moddoc : doc:: moddoc
67
65
) {
68
- write_header ( ctxt, #fmt ( "Module `%s`" , moddoc. name ) ) ;
66
+ write_header ( ctxt, h2 , #fmt ( "Module `%s`" , moddoc. name ) ) ;
69
67
write_mod_contents ( ctxt, moddoc) ;
70
68
}
71
69
@@ -77,15 +75,11 @@ fn write_mod_contents(
77
75
write_desc ( ctxt, doc. desc ) ;
78
76
79
77
for fndoc in * doc. fns {
80
- subsection ( ctxt) { ||
81
- write_fn ( ctxt, fndoc) ;
82
- }
78
+ write_fn ( ctxt, fndoc) ;
83
79
}
84
80
85
81
for moddoc in * doc. mods {
86
- subsection ( ctxt) { ||
87
- write_mod ( ctxt, moddoc) ;
88
- }
82
+ write_mod ( ctxt, moddoc) ;
89
83
}
90
84
}
91
85
@@ -105,7 +99,7 @@ fn write_fn(
105
99
ctxt : ctxt ,
106
100
doc : doc:: fndoc
107
101
) {
108
- write_header ( ctxt, #fmt ( "Function `%s`" , doc. name ) ) ;
102
+ write_header ( ctxt, h3 , #fmt ( "Function `%s`" , doc. name ) ) ;
109
103
write_brief ( ctxt, doc. brief ) ;
110
104
write_desc ( ctxt, doc. desc ) ;
111
105
write_args ( ctxt, doc. args ) ;
0 commit comments