diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs
index 055671fa..a32e3207 100644
--- a/src/renderer/html_handlebars/hbs_renderer.rs
+++ b/src/renderer/html_handlebars/hbs_renderer.rs
@@ -131,10 +131,27 @@ impl Renderer for HtmlHandlebars {
// Render the chapters of each book
for (key, book) in &book_project.translations {
- // Read in the page template
- let tmpl_path: &PathBuf = &book_project.get_template_dir().join("_layouts").join("page.hbs");
- let s = if tmpl_path.exists() {
- try!(utils::fs::file_to_string(&tmpl_path))
+ // Look for the page template in these paths
+ let mut tmpl_paths: Vec = vec![];
+
+ // default scheme: assets/_html-template/_layouts/page.hbs
+ tmpl_paths.push(book_project.get_template_dir().join("_layouts").join("page.hbs"));
+ // maybe the user doesn't use _layouts folder: assets/_html-template/page.hbs
+ tmpl_paths.push(book_project.get_template_dir().join("page.hbs"));
+ // also look for index.hbs which was the template name in v0.0.15
+ tmpl_paths.push(book_project.get_template_dir().join("index.hbs"));
+
+ let first_path_that_exists = |paths: &Vec| -> Option {
+ for p in paths.iter() {
+ if p.exists() {
+ return Some(PathBuf::from(p));
+ }
+ }
+ None
+ };
+
+ let s = if let Some(p) = first_path_that_exists(&tmpl_paths) {
+ try!(utils::fs::file_to_string(&p))
} else {
try!(utils::fs::get_data_file("data/_html-template/_layouts/page.hbs"))
};