1package ssg
2
3import (
4 "os"
5 "strings"
6)
7
8func GetSidebar(pagesDir string, order []string) ([]SidebarItem, error) {
9 var nav []SidebarItem
10 for _, item := range order {
11 nav = append(nav, SidebarItem{
12 Name: item,
13 Path: item + ".html",
14 })
15 }
16 entries, err := os.ReadDir(pagesDir)
17 if err != nil {
18 return nav, err
19 }
20 for _, entry := range entries {
21 stem, ok := strings.CutSuffix(entry.Name(), ".md")
22 if !ok {
23 continue
24 }
25 nav = append(nav, SidebarItem{
26 Name: stem,
27 Path: stem + ".html",
28 })
29 }
30 nav = RemoveDuplicateItems(nav)
31 return nav, nil
32}