From 0de177a344a9e36eb6da506be7c8bd3faf852682 Mon Sep 17 00:00:00 2001 From: Matt Ickstadt Date: Wed, 16 May 2018 12:06:55 -0500 Subject: [PATCH] Add a warning for possible theme directories which will no longer be used --- src/renderer/html_handlebars/hbs_renderer.rs | 23 ++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index 4341ce3b..5acdbd77 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -257,6 +257,24 @@ impl HtmlHandlebars { } } +// TODO(mattico): Remove some time after the 0.1.8 release +fn maybe_wrong_theme_dir(dir: &Path) -> Result { + fn entry_is_maybe_book_file(entry: fs::DirEntry) -> Result { + Ok(entry.file_type()?.is_file() && entry.path().extension().map_or(false, |ext| ext == "md")) + } + + if dir.is_dir() { + for entry in fs::read_dir(dir)? { + if entry_is_maybe_book_file(entry?).unwrap_or(false) { + return Ok(false); + } + } + Ok(true) + } else { + Ok(false) + } +} + impl Renderer for HtmlHandlebars { fn name(&self) -> &str { "html" @@ -276,6 +294,11 @@ impl Renderer for HtmlHandlebars { None => ctx.root.join("theme"), }; + if html_config.theme.is_none() && maybe_wrong_theme_dir(&src_dir.join("theme")).unwrap_or(false) { + warn!("Previous versions of mdBook erroneously accepted `./src/theme` as an automatic theme directory"); + warn!("Please move your theme files to `./theme` for them to continue being used"); + } + let theme = theme::Theme::new(theme_dir); debug!("Register the index handlebars template");