mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-17 21:01:26 +02:00
Section menu for the lazy blogger
The current menu system works great, but is too much work if all you want is a simple menu with the sections as menu items, and having these menu items connected to the pages in a way that enables setting the correct menu item as active for both the section lists and the pages itself. This commit adds a new option `SectionPagesMenu' which, if set, will create a new menu with that name with all the sections as menu items. The pages in the sections will behave as "shadow members" of these section items as `blogpage.HasMenuCurrent "sectionmenu" $sectionmenuitem` will return true. If a menu item with the same `identifier` is defined in site config, *that* item will take precedence.
This commit is contained in:
@@ -556,6 +556,12 @@ func (p *Page) GetParam(key string) interface{} {
|
||||
|
||||
func (p *Page) HasMenuCurrent(menu string, me *MenuEntry) bool {
|
||||
menus := p.Menus()
|
||||
sectionPagesMenu := viper.GetString("SectionPagesMenu")
|
||||
|
||||
// page is labeled as "shadow-member" of the menu with the same identifier as the section
|
||||
if sectionPagesMenu != "" && p.Section() != "" && sectionPagesMenu == menu && p.Section() == me.Identifier {
|
||||
return true
|
||||
}
|
||||
|
||||
if m, ok := menus[menu]; ok {
|
||||
if me.HasChildren() {
|
||||
|
Reference in New Issue
Block a user