diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index 8dcc6b01..6535a4a3 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -238,12 +238,13 @@ impl HtmlHandlebars { /// Copy across any additional CSS and JavaScript files which the book /// has been configured to use. - fn copy_additional_css_and_js(&self, html: &HtmlConfig, destination: &Path) -> Result<()> { + fn copy_additional_css_and_js(&self, html: &HtmlConfig, root: &Path, destination: &Path) -> Result<()> { let custom_files = html.additional_css.iter().chain(html.additional_js.iter()); debug!("Copying additional CSS and JS"); for custom_file in custom_files { + let input_location = root.join(custom_file); let output_location = destination.join(custom_file); if let Some(parent) = output_location.parent() { fs::create_dir_all(parent) @@ -251,14 +252,14 @@ impl HtmlHandlebars { } debug!( "Copying {} -> {}", - custom_file.display(), + input_location.display(), output_location.display() ); - fs::copy(custom_file, &output_location).chain_err(|| { + fs::copy(&input_location, &output_location).chain_err(|| { format!( "Unable to copy {} to {}", - custom_file.display(), + input_location.display(), output_location.display() ) })?; @@ -338,7 +339,7 @@ impl Renderer for HtmlHandlebars { debug!("Copy static files"); self.copy_static_files(&destination, &theme, &html_config) .chain_err(|| "Unable to copy across static files")?; - self.copy_additional_css_and_js(&html_config, &destination) + self.copy_additional_css_and_js(&html_config, &ctx.root, &destination) .chain_err(|| "Unable to copy across additional CSS and JS")?; // Copy all remaining files @@ -375,11 +376,11 @@ fn make_data(root: &Path, book: &Book, config: &Config, html_config: &HtmlConfig let mut css = Vec::new(); for style in &html.additional_css { match style.strip_prefix(root) { - Ok(p) => css.push(p.to_str().expect("Could not convert to str")), + Ok(p) => { + css.push(p.to_str().expect("Could not convert to str")) + }, Err(_) => { - css.push(style.file_name() - .expect("File has a file name") - .to_str() + css.push(style.to_str() .expect("Could not convert to str")) } }