diff --git a/wowchemy/layouts/partials/book_menu.html b/wowchemy/layouts/partials/book_menu.html
index 3a0cd934..384d1cca 100644
--- a/wowchemy/layouts/partials/book_menu.html
+++ b/wowchemy/layouts/partials/book_menu.html
@@ -7,9 +7,9 @@
{{ $icon := "" }}
{{ with .sect }}
- {{ if .IsSection}}
+ {{ if .IsSection }}
{{ if not $is_root }}
- {{- $first = eq $current_node.FirstSection . -}}
+ {{- $first = (eq $current_node.FirstSection.Type "book") | and (eq $current_node.FirstSection .) -}}
{{ end }}
{{- safeHTML $current_node.FirstSection.Params.pre_nav -}}
diff --git a/wowchemy/layouts/partials/book_sidebar.html b/wowchemy/layouts/partials/book_sidebar.html
index ff1796d3..96ec6e46 100644
--- a/wowchemy/layouts/partials/book_sidebar.html
+++ b/wowchemy/layouts/partials/book_sidebar.html
@@ -15,6 +15,8 @@
{{ $query := "" }}
{{ $root_page := .GetPage "/_index.md" }}
{{ $is_root := false}}
+
+ {{/* Case where homepage is a book */}}
{{ if $root_page | and (eq $root_page.Type "book") }}
{{ $is_root = true}}
@@ -27,23 +29,48 @@
{{- else -}}
{{- $query = .Site.Home.Sections.ByWeight -}}
{{- end}}
+
{{else}}
- {{/* Get section name from the path. */}}
- {{ $menu_name = (path.Base (path.Split .FirstSection).Dir) }}
+ {{/* Case where homepage is NOT a book */}}
- {{/* For any folder named `updates`, use descending title order (e.g. latest release note first). */}}
- {{ $order_by = cond (eq $menu_name "updates") "title_desc" $order_by }}
+ {{ if eq .FirstSection.Type "book" }}
+ {{/* Case where first section is a book. */}}
- {{- if eq $order_by "title" -}}
- {{- $query = where .Site.Home.Sections.ByTitle "Section" $menu_name -}}
- {{- else if eq $order_by "title_desc" -}}
- {{- $query = where .Site.Home.Sections.ByTitle.Reverse "Section" $menu_name -}}
- {{- else -}}
- {{- $query = where .Site.Home.Sections.ByWeight "Section" $menu_name -}}
- {{- end}}
+ {{ $menu_name = (path.Base (path.Split .FirstSection).Dir) }}
+ {{/* For any folder named `updates`, use descending title order (e.g. latest release note first). */}}
+ {{ $order_by = cond (eq $menu_name "updates") "title_desc" $order_by }}
+ {{- if eq $order_by "title" -}}
+ {{- $query = where .Site.Home.Sections.ByTitle "Section" $menu_name -}}
+ {{- else if eq $order_by "title_desc" -}}
+ {{- $query = where .Site.Home.Sections.ByTitle.Reverse "Section" $menu_name -}}
+ {{- else -}}
+ {{- $query = where .Site.Home.Sections.ByWeight "Section" $menu_name -}}
+ {{- end -}}
+
+ {{- range $query -}}
+ {{ template "book-menu" dict "sect" . "current_node" $current_node "order_by" $order_by "is_root" $is_root }}
+ {{- end -}}
+
+ {{ else }}
+ {{/* Case where first section is a general page (e.g. book of books). */}}
+
+ {{ $first_node := $current_node }}
+ {{ if ne .Parent .FirstSection }}
+ {{ if ne .Parent.Parent .FirstSection }}
+ {{ $first_node = $current_node.Parent.Parent }}
+ {{else}}
+ {{ $first_node = $current_node.Parent }}
+ {{end}}
+ {{end}}
+
+ {{- if eq $order_by "title" -}}
+ {{- $query = $first_node.Pages.ByTitle -}}
+ {{- else if eq $order_by "title_desc" -}}
+ {{- $query = $first_node.Pages.ByTitle.Reverse -}}
+ {{- else -}}
+ {{- $query = $first_node.Pages.ByWeight -}}
+ {{- end -}}
+ {{ template "book-menu" dict "sect" $first_node "current_node" $current_node "order_by" $order_by "is_root" $is_root }}
+ {{end}}
{{end}}
-
- {{- range $query -}}
- {{ template "book-menu" dict "sect" . "current_node" $current_node "order_by" $order_by "is_root" $is_root }}
- {{- end -}}