Documentation
¶
Overview ¶
Package navigation provides the menu functionality.
Index ¶
- Variables
- func DecodeConfig(in any) (*config.ConfigNamespace[map[string]MenuConfig, Menus], error)
- func SetPageValues(m *MenuEntry, p Page)
- type Menu
- type MenuConfig
- type MenuEntry
- type MenuQueryProvider
- type Menus
- type MenusGetter
- type Page
- type PageMenus
- type PageMenusGetter
- type PageMenusProvider
Constants ¶
This section is empty.
Variables ¶
View Source
var NopPageMenus = new(nopPageMenus)
Functions ¶
func DecodeConfig ¶
func DecodeConfig(in any) (*config.ConfigNamespace[map[string]MenuConfig, Menus], error)
func SetPageValues ¶
SetPageValues sets the Page and URL values for this menu entry.
Types ¶
type Menu ¶
type Menu []*MenuEntry
Menu is a collection of menu entries.
type MenuConfig ¶
type MenuConfig struct {
Identifier string
Parent string
Name string
Pre template.HTML
Post template.HTML
URL string
PageRef string
Weight int
Title string
// User defined params.
Params maps.Params
}
MenuConfig holds the configuration for a menu.
type MenuEntry ¶
type MenuEntry struct {
// The menu entry configuration.
MenuConfig
// The menu containing this menu entry.
Menu string
// The URL value from front matter / config.
ConfiguredURL string
// The Page connected to this menu entry.
Page Page
// Child entries.
Children Menu
}
MenuEntry represents a menu item defined in either Page front matter or in the site config.
func (*MenuEntry) HasChildren ¶
HasChildren returns whether this menu item has any children.
type MenuQueryProvider ¶
type MenuQueryProvider interface {
HasMenuCurrent(menuID string, me *MenuEntry) bool
IsMenuCurrent(menuID string, inme *MenuEntry) bool
}
func NewMenuQueryProvider ¶
func NewMenuQueryProvider( pagem PageMenusGetter, sitem MenusGetter, p Page, ) MenuQueryProvider
type MenusGetter ¶
type MenusGetter interface {
Menus() Menus
}
type Page ¶
type Page interface {
LinkTitle() string
Title() string
RelPermalink() string
Path() string
Section() string
Weight() int
IsPage() bool
IsSection() bool
IsAncestor(other any) bool
Params() maps.Params
}
A narrow version of page.Page.
type PageMenusGetter ¶
type PageMenusGetter interface {
Menus() PageMenus
}
type PageMenusProvider ¶
type PageMenusProvider interface {
PageMenusGetter
MenuQueryProvider
}
Click to show internal directories.
Click to hide internal directories.