shithub: hugo

Download patch

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{}
 					}