have the data for the handlebars template be merged with the

chapter_config preserving the chapter title
This commit is contained in:
Adam Kerrigan 2021-02-15 17:07:07 +00:00
parent 44153e5ebf
commit b9782b0ec2
1 changed files with 13 additions and 2 deletions

View File

@ -72,7 +72,9 @@ impl HtmlHandlebars {
ctx.data.insert("path".to_owned(), json!(path)); ctx.data.insert("path".to_owned(), json!(path));
ctx.data.insert("content".to_owned(), json!(content)); ctx.data.insert("content".to_owned(), json!(content));
ctx.data.insert("chapter_title".to_owned(), json!(ch.name)); ctx.data.insert("chapter_title".to_owned(), json!(ch.name));
ctx.data.insert("title".to_owned(), json!(title)); if let Some(title) = ctx.data.insert("title".to_owned(), json!(title)) {
ctx.data.insert("title".to_string(), title);
}
ctx.data.insert( ctx.data.insert(
"path_to_root".to_owned(), "path_to_root".to_owned(),
json!(utils::fs::path_to_root(&path)), json!(utils::fs::path_to_root(&path)),
@ -494,10 +496,19 @@ impl Renderer for HtmlHandlebars {
let mut is_index = true; let mut is_index = true;
for item in book.iter() { for item in book.iter() {
let item_data = if let BookItem::Chapter(ref ch) = item {
let mut chapter_data = data.clone();
for (key, value) in ch.chapter_config.iter() {
let _ = chapter_data.insert(key.to_string(), json!(value));
}
chapter_data
} else {
data.clone()
};
let ctx = RenderItemContext { let ctx = RenderItemContext {
handlebars: &handlebars, handlebars: &handlebars,
destination: destination.to_path_buf(), destination: destination.to_path_buf(),
data: data.clone(), data: item_data,
is_index, is_index,
html_config: html_config.clone(), html_config: html_config.clone(),
edition: ctx.config.rust.edition, edition: ctx.config.rust.edition,