From 541498bbf3d38af32f9c7657ea1d831ce2a0704e Mon Sep 17 00:00:00 2001 From: kekskurse Date: Mon, 4 Aug 2025 02:11:03 +0200 Subject: [PATCH] feat: if just one page called index.md in a folder make no drop down in the menu --- pkg/wikipress/generator.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pkg/wikipress/generator.go b/pkg/wikipress/generator.go index ff95d6a..92a933c 100644 --- a/pkg/wikipress/generator.go +++ b/pkg/wikipress/generator.go @@ -9,6 +9,7 @@ import ( "strings" "github.com/google/uuid" + "github.com/rs/zerolog/log" ) func CreateFilePageAndCopyContent(file File, outfolder string) error { @@ -103,10 +104,30 @@ func GenerateMenu(files []File) MenuItem { } } } + cleanupMenu(menu.Children) menu.Children = sortMenu(menu.Children) + fmt.Printf("%+v\r\n", menu) return menu } +func cleanupMenu(input []*MenuItem) { + log.Info().Msg("Clean Menu Item") + // If an page hase just one child called index.md make it a single menu without children + for _, i := range input { + if len(i.Children) == 1 && strings.HasSuffix(i.Children[0].Link, "index.html") { + i.Page = true + i.Link = i.Children[0].Link + i.Name = i.Children[0].Name + i.Text = i.Children[0].Text + i.File = i.Children[0].File + i.Level = i.Children[0].Level + i.Children = nil + continue + } + cleanupMenu(i.Children) + } +} + func sortMenu(input []*MenuItem) []*MenuItem { sort.Slice(input, func(i, j int) bool { return strings.ToLower(input[i].Name) < strings.ToLower(input[j].Name)