Skip to content

Commit

Permalink
Fix "next" navigation on index.html (take 2). (#1005)
Browse files Browse the repository at this point in the history
  • Loading branch information
ehuss authored and Dylan-DPC committed Oct 6, 2019
1 parent 0173451 commit 4a93edd
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/renderer/html_handlebars/hbs_renderer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ impl HtmlHandlebars {
if ctx.is_index {
ctx.data.insert("path".to_owned(), json!("index.md"));
ctx.data.insert("path_to_root".to_owned(), json!(""));
ctx.data.insert("is_index".to_owned(), json!("true"));
let rendered_index = ctx.handlebars.render("index", &ctx.data)?;
let rendered_index = self.post_process(rendered_index, &ctx.html_config.playpen);
debug!("Creating index.html from {}", path);
Expand Down
13 changes: 13 additions & 0 deletions src/renderer/html_handlebars/helpers/navigation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,19 @@ fn find_chapter(
.ok_or_else(|| RenderError::new("Type error for `path`, string expected"))?
.replace("\"", "");

if !rc.evaluate(ctx, "@root/is_index")?.is_missing() {
// Special case for index.md which may be a synthetic page.
// Target::find won't match because there is no page with the path
// "index.md" (unless there really is an index.md in SUMMARY.md).
match target {
Target::Previous => return Ok(None),
Target::Next => match chapters.iter().skip(1).next() {
Some(chapter) => return Ok(Some(chapter.clone())),
None => return Ok(None),
},
}
}

let mut previous: Option<StringMap> = None;

debug!("Search for chapter");
Expand Down

0 comments on commit 4a93edd

Please sign in to comment.