diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 810ceab..1a35a71 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -62,9 +62,10 @@ enableGitInfo = true # When not specified file structure and weights will be used # BookMenuBundle = '/menu' - # (Optional, default docs) Specify section of content to render as menu - # You can also set value to '*' to render all sections to menu - BookSection = 'docs' + # (Optional, default docs) Specify root page to render child pages as menu. + # Page is resoled by .GetPage function: https://gohugo.io/functions/getpage/ + # For backward compatibility you can set '*' to render all sections to menu. Acts same as '/' + BookSection = '/' # Set source repository location. # Used for 'Last Modified' and 'Edit this page' links. @@ -78,7 +79,7 @@ enableGitInfo = true # Configure the date format used on the pages # - In git information # - In blog posts - BookDateFormat = 'Jan 2, 2006' + BookDateFormat = 'January 2, 2006' # (Optional, default true) Enables search function with flexsearch, # Index is built on fly, therefore it might slowdown your website. diff --git a/exampleSite/config.yaml b/exampleSite/config.yaml index f7f3bc2..6a26b13 100644 --- a/exampleSite/config.yaml +++ b/exampleSite/config.yaml @@ -58,8 +58,9 @@ params: # When not specified file structure and weights will be used # BookMenuBundle: /menu - # (Optional, default docs) Specify section of content to render as menu - # You can also set value to '*' to render all sections to menu + # (Optional, default docs) Specify root page to render child pages as menu. + # Page is resoled by .GetPage function: https://gohugo.io/functions/getpage/ + # For backward compatibility you can set '*' to render all sections to menu. Acts same as '/' BookSection: docs # Set source repository location. @@ -74,7 +75,7 @@ params: # Configure the date format used on the pages # - In git information # - In blog posts - BookDateFormat: "Jan 2, 2006" + BookDateFormat: "January 2, 2006" # (Optional, default true) Enables search function with flexsearch, # Index is built on fly, therefore it might slowdown your website. diff --git a/layouts/partials/docs/menu-filetree.html b/layouts/partials/docs/menu-filetree.html index e3db53b..489a62f 100644 --- a/layouts/partials/docs/menu-filetree.html +++ b/layouts/partials/docs/menu-filetree.html @@ -1,48 +1,27 @@ {{ $bookSection := default "docs" .Site.Params.BookSection }} {{ if eq $bookSection "*" }} - {{ .Scratch.Set "BookSections" .Site.Sections }} -{{ else }} - {{ $bookSections := where .Site.Sections "Section" $bookSection }} - {{ .Scratch.Set "BookSections" $bookSections }} + {{ $bookSection = "/" }}{{/* Backward compatibility */}} {{ end }} +{{ with .Site.GetPage $bookSection }} + {{ template "book-section-children" (dict "Section" . "CurrentPage" $) }} +{{ end }} -{{ $sections := .Scratch.Get "BookSections" }} -{{/* If there is only one section to render then render its children, else render all sections */}} -{{ if eq (len $sections) 1 }} - {{ with index $sections 0 }} - {{ template "book-section-children" (dict "Section" . "CurrentPage" $) }} - {{ end }} -{{ else }} +{{ define "book-section-children" }}{{/* (dict "Section" .Section "CurrentPage" .CurrentPage) */}} + {{ $ancestor := .Section.IsAncestor .CurrentPage }} + {{ $collapsed := .Section.Params.bookCollapseSection }} + + {{ if or $ancestor (not $collapsed) }}