diff options
Diffstat (limited to 'hugolib')
-rw-r--r-- | hugolib/menu_test.go | 75 | ||||
-rw-r--r-- | hugolib/site.go | 7 |
2 files changed, 71 insertions, 11 deletions
diff --git a/hugolib/menu_test.go b/hugolib/menu_test.go index 5c692d2e7..f1db3cb3a 100644 --- a/hugolib/menu_test.go +++ b/hugolib/menu_test.go @@ -92,10 +92,10 @@ Menu Main: {{ partial "menu.html" (dict "page" . "menu" "main") }}`, th.assertFileContent("public/sect1/p1/index.html", "Single", "Menu Sect: "+ - "/sect5/|Section Five||10|-|-|"+ - "/sect1/|Section One||100|-|HasMenuCurrent|"+ - "/sect2/|Sect2s||0|-|-|"+ - "/sect3/|Sect3s||0|-|-|", + "/sect5/|Section Five|Section Five|10|-|-|"+ + "/sect1/|Section One|Section One|100|-|HasMenuCurrent|"+ + "/sect2/|Sect2s|Sect2s|0|-|-|"+ + "/sect3/|Sect3s|Sect3s|0|-|-|", "Menu Main: "+ "/sect3/p5/|p5|atitle5|5|-|-|"+ "/sect2/p4/|p4|atitle4|10|-|-|"+ @@ -106,10 +106,10 @@ Menu Main: {{ partial "menu.html" (dict "page" . "menu" "main") }}`, th.assertFileContent("public/sect2/p3/index.html", "Single", "Menu Sect: "+ - "/sect5/|Section Five||10|-|-|"+ - "/sect1/|Section One||100|-|-|"+ - "/sect2/|Sect2s||0|-|HasMenuCurrent|"+ - "/sect3/|Sect3s||0|-|-|") + "/sect5/|Section Five|Section Five|10|-|-|"+ + "/sect1/|Section One|Section One|100|-|-|"+ + "/sect2/|Sect2s|Sect2s|0|-|HasMenuCurrent|"+ + "/sect3/|Sect3s|Sect3s|0|-|-|") } @@ -163,3 +163,62 @@ menu: ) } + +// https://github.com/gohugoio/hugo/issues/5849 +func TestMenuPageMultipleOutputFormats(t *testing.T) { + + config := ` +baseURL = "https://example.com" + +# DAMP is similar to AMP, but not permalinkable. +[outputFormats] +[outputFormats.damp] +mediaType = "text/html" +path = "damp" + +` + + b := newTestSitesBuilder(t).WithConfigFile("toml", config) + b.WithContent("_index.md", ` +--- +Title: Home Sweet Home +outputs: [ "html", "amp" ] +menu: "main" +--- + +`) + + b.WithContent("blog/html-amp.md", ` +--- +Title: AMP and HTML +outputs: [ "html", "amp" ] +menu: "main" +--- + +`) + + b.WithContent("blog/html.md", ` +--- +Title: HTML only +outputs: [ "html" ] +menu: "main" +--- + +`) + + b.WithContent("blog/amp.md", ` +--- +Title: AMP only +outputs: [ "amp" ] +menu: "main" +--- + +`) + + b.WithTemplatesAdded("index.html", `{{ range .Site.Menus.main }}{{ .Title }}|{{ .URL }}|{{ end }}`) + + b.Build(BuildCfg{}) + + b.AssertFileContent("public/index.html", "AMP and HTML|/blog/html-amp/|AMP only|/amp/blog/amp/|HTML only|/blog/html/|Home Sweet Home|/|") + b.AssertFileContent("public/amp/index.html", "AMP and HTML|/amp/blog/html-amp/|AMP only|/amp/blog/amp/|HTML only|/blog/html/|Home Sweet Home|/amp/|") +} diff --git a/hugolib/site.go b/hugolib/site.go index 693c79f67..495225093 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -1416,7 +1416,8 @@ func (s *Site) getMenusFromConfig() navigation.Menus { } menuEntry.MarshallMap(ime) - menuEntry.URL = s.Info.createNodeMenuEntryURL(menuEntry.URL) + // TODO(bep) clean up all of this + menuEntry.ConfiguredURL = s.Info.createNodeMenuEntryURL(menuEntry.ConfiguredURL) if ret[name] == nil { ret[name] = navigation.Menu{} @@ -1477,7 +1478,7 @@ func (s *Site) assembleMenus() { me := navigation.MenuEntry{Identifier: id, Name: p.LinkTitle(), Weight: p.Weight(), - URL: p.RelPermalink()} + Page: p} flat[twoD{sectionPagesMenu, me.KeyName()}] = &me } } @@ -1506,7 +1507,7 @@ func (s *Site) assembleMenus() { _, ok := flat[twoD{p.MenuName, p.EntryName}] if !ok { // if parent does not exist, create one without a URL - flat[twoD{p.MenuName, p.EntryName}] = &navigation.MenuEntry{Name: p.EntryName, URL: ""} + flat[twoD{p.MenuName, p.EntryName}] = &navigation.MenuEntry{Name: p.EntryName} } flat[twoD{p.MenuName, p.EntryName}].Children = childmenu } |