commit 635a081
Artur Manuel
·
2026-06-07 22:39:56 +0000 UTC
parent f8ed5ac
sidebar: fix build failure
2 files changed,
+25,
-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+}