diff --git a/src/book/bookconfig.rs b/src/book/bookconfig.rs index 700469f7..95ac2caf 100644 --- a/src/book/bookconfig.rs +++ b/src/book/bookconfig.rs @@ -8,6 +8,7 @@ use std::path::{Path, PathBuf}; pub struct BookConfig { pub title: String, pub author: String, + pub description: String, root: PathBuf, dest: PathBuf, src: PathBuf, @@ -21,6 +22,7 @@ impl BookConfig { BookConfig { title: String::new(), author: String::new(), + description: String::new(), root: root.to_owned(), dest: PathBuf::from("book"), src: PathBuf::from("src"), @@ -54,9 +56,10 @@ impl BookConfig { // Extract data debug!("[*]: Extracting data from config"); - // Title & author + // Title, author, description if let Some(a) = config.find_path(&["title"]) { self.title = a.to_string().replace("\"", "") } if let Some(a) = config.find_path(&["author"]) { self.author = a.to_string().replace("\"", "") } + if let Some(a) = config.find_path(&["description"]) { self.description = a.to_string().replace("\"", "") } // Destination if let Some(a) = config.find_path(&["dest"]) { diff --git a/src/book/mdbook.rs b/src/book/mdbook.rs index 521606d3..db27830f 100644 --- a/src/book/mdbook.rs +++ b/src/book/mdbook.rs @@ -351,6 +351,15 @@ impl MDBook { &self.config.author } + pub fn set_description(mut self, description: &str) -> Self { + self.config.description = description.to_owned(); + self + } + + pub fn get_description(&self) -> &str { + &self.config.description + } + // Construct book fn parse_summary(&mut self) -> Result<(), Box> { // When append becomes stable, use self.content.append() ... diff --git a/src/renderer/html_handlebars/hbs_renderer.rs b/src/renderer/html_handlebars/hbs_renderer.rs index 613972fe..e9d9aa15 100644 --- a/src/renderer/html_handlebars/hbs_renderer.rs +++ b/src/renderer/html_handlebars/hbs_renderer.rs @@ -241,6 +241,7 @@ fn make_data(book: &MDBook) -> Result, Box> { let mut data = BTreeMap::new(); data.insert("language".to_owned(), "en".to_json()); data.insert("title".to_owned(), book.get_title().to_json()); + data.insert("description".to_owned(), book.get_description().to_json()); data.insert("favicon".to_owned(), "favicon.png".to_json()); let mut chapters = vec![]; diff --git a/src/theme/index.hbs b/src/theme/index.hbs index 98c959cf..2bd43c96 100644 --- a/src/theme/index.hbs +++ b/src/theme/index.hbs @@ -4,7 +4,7 @@ {{ title }} - +