navigation: Check Page first in URL()
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 21 Jul 2021 09:34:26 +0000 (11:34 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 21 Jul 2021 09:36:15 +0000 (11:36 +0200)
 In Hugo #8776 we added `pageRef`, a way to connect menu items in site config to pages.

This means that you now can have both a Page and a configured URL.

Having the configured URL as a fallback if the Page isn't found is obviously more useful, especially in multilingual sites.

See #8776

navigation/menu.go

index 7c6a1ccc7167a02f8f196d95886127dcc050fa9e..dd62f825ebda51cc73c94c390d1cd775afb609a1 100644 (file)
@@ -46,15 +46,19 @@ type MenuEntry struct {
 }
 
 func (m *MenuEntry) URL() string {
-       if m.ConfiguredURL != "" {
-               return m.ConfiguredURL
-       }
 
+       // Check page first.
+       // In Hugo 0.86.0 we added `pageRef`,
+       // a way to connect menu items in site config to pages.
+       // This means that you now can have both a Page
+       // and a configured URL.
+       // Having the configured URL as a fallback if the Page isn't found
+       // is obviously more useful, especially in multilingual sites.
        if !types.IsNil(m.Page) {
                return m.Page.RelPermalink()
        }
 
-       return ""
+       return m.ConfiguredURL
 }
 
 // A narrow version of page.Page.