@@ -95,14 +95,15 @@ impl Renderer for HtmlHandlebars {
95
95
debug ! ( "[*]: Render template" ) ;
96
96
let rendered = try!( handlebars. render ( "index" , & data) ) ;
97
97
98
+ let filename = Path :: new ( & ch. path ) . with_extension ( "html" ) ;
99
+
98
100
// create links for headers
99
- let rendered = build_header_links ( rendered) ;
101
+ let rendered = build_header_links ( rendered, filename . to_str ( ) . unwrap_or ( "" ) ) ;
100
102
101
103
// fix code blocks
102
104
let rendered = fix_code_blocks ( rendered) ;
103
105
104
106
// Write to file
105
- let filename = Path :: new ( & ch. path ) . with_extension ( "html" ) ;
106
107
info ! ( "[*] Creating {:?} ✓" , filename. display( ) ) ;
107
108
try!( book. write_file ( filename, & rendered. into_bytes ( ) ) ) ;
108
109
@@ -144,7 +145,7 @@ impl Renderer for HtmlHandlebars {
144
145
debug ! ( "[*]: Render template" ) ;
145
146
146
147
let rendered = try!( handlebars. render ( "index" , & data) ) ;
147
- let rendered = build_header_links ( rendered) ;
148
+ let rendered = build_header_links ( rendered, "print.html" ) ;
148
149
149
150
// fix code blocks
150
151
let rendered = fix_code_blocks ( rendered) ;
@@ -224,7 +225,7 @@ fn make_data(book: &MDBook) -> Result<serde_json::Map<String, serde_json::Value>
224
225
Ok ( data)
225
226
}
226
227
227
- fn build_header_links ( html : String ) -> String {
228
+ fn build_header_links ( html : String , filename : & str ) -> String {
228
229
let regex = Regex :: new ( r"<h(\d)>(.*?)</h\d>" ) . unwrap ( ) ;
229
230
230
231
regex. replace_all ( & html, |caps : & Captures | {
@@ -251,7 +252,8 @@ fn build_header_links(html: String) -> String {
251
252
}
252
253
} ) . collect :: < String > ( ) ;
253
254
254
- format ! ( "<a class=\" header\" href=\" #{id}\" name=\" {id}\" ><h{level}>{text}</h{level}></a>" , level=level, id=id, text=text)
255
+ format ! ( "<a class=\" header\" href=\" {filename}#{id}\" name=\" {id}\" ><h{level}>{text}</h{level}></a>" ,
256
+ level=level, id=id, text=text, filename=filename)
255
257
} ) . into_owned ( )
256
258
}
257
259
0 commit comments