ref: 3ccb3979028aafb3e6cc16d47daa77a1fdea11fa
parent: e6541c45ab1a3d15acd1beea73df5d17d08c7769
author: bep <[email protected]>
date: Wed Dec 10 14:37:49 EST 2014
Make Urls in menus respect CanonifyUrls Fixes #519
--- a/hugolib/menu_test.go
+++ b/hugolib/menu_test.go
@@ -182,7 +182,7 @@
defer resetMenuTestState(ts)
home := ts.site.newHomeNode()
- homeMenuEntry := &MenuEntry{Name: home.Title, Url: string(home.Permalink)}
+ homeMenuEntry := &MenuEntry{Name: home.Title, Url: home.Url}
for i, this := range []struct {
menu string
--- a/hugolib/node.go
+++ b/hugolib/node.go
@@ -38,7 +38,7 @@
func (n *Node) HasMenuCurrent(menuId string, inme *MenuEntry) bool {
if inme.HasChildren() {
- me := MenuEntry{Name: n.Title, Url: string(n.Permalink)}
+ me := MenuEntry{Name: n.Title, Url: n.Url}
for _, child := range inme.Children {
if me.IsSameResource(child) {
@@ -52,8 +52,7 @@
func (n *Node) IsMenuCurrent(menuId string, inme *MenuEntry) bool {
- me := MenuEntry{Name: n.Title, Url: string(n.Permalink)}
-
+ me := MenuEntry{Name: n.Title, Url: n.Url}
if !me.IsSameResource(inme) {
return false
}
--- a/hugolib/page.go
+++ b/hugolib/page.go
@@ -473,7 +473,7 @@
ret := PageMenus{}
if ms, ok := page.Params["menu"]; ok {
- link, _ := page.Permalink()
+ link, _ := page.RelPermalink()
me := MenuEntry{Name: page.LinkTitle(), Weight: page.Weight, Url: link}
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -532,10 +532,12 @@
}
menuEntry.MarshallMap(ime)
+
if strings.HasPrefix(menuEntry.Url, "/") {
- // make it absolute so it matches the nodes
- menuEntry.Url = s.permalinkStr(menuEntry.Url)
+ // make it match the nodes
+ menuEntry.Url = s.prepUrl(menuEntry.Url)
}
+
if ret[name] == nil {
ret[name] = &Menu{}
}