diff --git a/src/book/mod.rs b/src/book/mod.rs index 2993f3df..05d45d9c 100644 --- a/src/book/mod.rs +++ b/src/book/mod.rs @@ -299,8 +299,13 @@ impl MDBook { pub fn read_config(mut self) -> Result { let config_path = self.root.join("book.toml"); - debug!("[*] Loading the config from {}", config_path.display()); - self.config = Config::from_disk(&config_path)?; + + if config_path.exists() { + debug!("[*] Loading the config from {}", config_path.display()); + self.config = Config::from_disk(&config_path)?; + } else { + self.config = Config::default(); + } Ok(self) } diff --git a/tests/init.rs b/tests/init.rs index e35edee6..32c0ce8d 100644 --- a/tests/init.rs +++ b/tests/init.rs @@ -51,3 +51,14 @@ fn run_mdbook_init_with_custom_book_and_src_locations() { assert!(target.exists(), "{} should have been created by `mdbook init`", file); } } + +#[test] +fn book_toml_isnt_required() { + let temp = TempDir::new("mdbook").unwrap(); + let mut md = MDBook::new(temp.path()); + md.init().unwrap(); + + assert!(!temp.path().join("book.toml").exists()); + + md.read_config().unwrap().build().unwrap(); +}