commit 635a081

Artur Manuel  ·  2026-06-07 22:39:56 +0000 UTC
parent f8ed5ac
sidebar: fix build failure
2 files changed,  +25, -29
+13, -29
 1@@ -6,43 +6,27 @@ import (
 2 )
 3 
 4 func GetSidebar(pagesDir string, order []string) ([]SidebarItem, error) {
 5+	var nav []SidebarItem
 6+	for _, item := range order {
 7+		nav = append(nav, SidebarItem{
 8+			Name: item,
 9+			Path: item + ".html",
10+		})
11+	}
12 	entries, err := os.ReadDir(pagesDir)
13 	if err != nil {
14-		return nil, err
15+		return nav, err
16 	}
17-
18-	var allPages []string
19 	for _, entry := range entries {
20 		stem, ok := strings.CutSuffix(entry.Name(), ".md")
21 		if !ok {
22 			continue
23 		}
24-		allPages = append(allPages, stem)
25+		nav = append(nav, SidebarItem{
26+			Name: stem,
27+			Path: stem + ".html",
28+		})
29 	}
30-
31-	var nav []SidebarItem
32-
33-	for _, name := range order {
34-		for _, page := range allPages {
35-			if page == name {
36-				nav = append(nav, SidebarItem{Name: name, Path: name + ".html"})
37-				break
38-			}
39-		}
40-	}
41-
42-	for _, page := range allPages {
43-		order := false
44-		for _, name := range order {
45-			if page == name {
46-				order = true
47-				break
48-			}
49-		}
50-		if !order {
51-			nav = append(nav, SidebarItem{Name: page, Path: page + ".html"})
52-		}
53-	}
54-
55+	nav = RemoveDuplicateItems(nav)
56 	return nav, nil
57 }
+12, -0
 1@@ -55,3 +55,15 @@ func CopyFile(srcPath string, destPath string) error {
 2 	}
 3 	return nil
 4 }
 5+
 6+func RemoveDuplicateItems[T comparable](items []T) []T {
 7+	result := make([]T, 0)
 8+	seen := make(map[T]bool, 0)
 9+	for _, item := range items {
10+		if !seen[item] {
11+			result = append(result, item)
12+			seen[item] = true
13+		}
14+	}
15+	return result
16+}