diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index 6c8928be..db2ae69e 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -28,7 +28,7 @@ impl HtmlHandlebars { } fn render_item(&self, item: &BookItem, book: &MDBook, data: &mut serde_json::Map, - print_content: &mut String, handlebars: &mut Handlebars, index: &mut bool) + print_content: &mut String, handlebars: &mut Handlebars, index: &mut bool, destination: &Path) -> Result<(), Box> { match *item { BookItem::Chapter(_, ref ch) | @@ -66,15 +66,10 @@ impl HtmlHandlebars { // Render the handlebars template with the data debug!("[*]: Render template"); let rendered = handlebars.render("index", &data)?; + let rendered = self.post_processing(rendered); let filename = Path::new(&ch.path).with_extension("html"); - // Do several kinds of post-processing - let rendered = build_header_links(rendered, filename.to_str().unwrap_or("")); - let rendered = fix_anchor_links(rendered, filename.to_str().unwrap_or("")); - let rendered = fix_code_blocks(rendered); - let rendered = add_playpen_pre(rendered); - // Write to file info!("[*] Creating {:?} ✓", filename.display()); book.write_file(filename, &rendered.into_bytes())?; @@ -86,9 +81,7 @@ impl HtmlHandlebars { let mut content = String::new(); let _source = File::open( - book.get_destination() - .expect("If the HTML renderer is called, one would assume the HtmlConfig is set... (3)") - .join(&ch.path.with_extension("html")) + destination.join(&ch.path.with_extension("html")) )?.read_to_string(&mut content); // This could cause a problem when someone displays @@ -148,7 +141,6 @@ impl HtmlHandlebars { Ok(()) } - fn write_custom_file(&self, custom_file: &Path, book: &MDBook) -> Result<(), Box> { let mut data = Vec::new(); let mut f = File::open(custom_file)?; @@ -200,10 +192,8 @@ impl Renderer for HtmlHandlebars { debug!("[fn]: render"); let mut handlebars = Handlebars::new(); - // Load theme let theme = theme::Theme::new(book.get_theme_path()); - // Register template debug!("[*]: Register handlebars template"); handlebars .register_template_string("index", String::from_utf8(theme.index.clone())?)?; @@ -214,12 +204,12 @@ impl Renderer for HtmlHandlebars { let mut data = make_data(book)?; // Print version - let mut print_content: String = String::new(); + let mut print_content = String::new(); - debug!("[*]: Check if destination directory exists"); let destination = book.get_destination() .expect("If the HTML renderer is called, one would assume the HtmlConfig is set... (2)"); + debug!("[*]: Check if destination directory exists"); if fs::create_dir_all(&destination).is_err() { return Err(Box::new(io::Error::new(io::ErrorKind::Other, "Unexpected error when constructing destination path"))); @@ -227,7 +217,7 @@ impl Renderer for HtmlHandlebars { let mut index = true; for item in book.iter() { - self.render_item(item, book, &mut data, &mut print_content, &mut handlebars, &mut index)?; + self.render_item(item, book, &mut data, &mut print_content, &mut handlebars, &mut index, &destination)?; } // Print version