Files
2026-03-02 22:38:29 +01:00

60 lines
1.1 KiB
Go

package page
import (
"context"
"log/slog"
"strings"
)
type PageHeader struct {
UID string
Title string
CoverImageUID string
md []byte // markdown of the page //markdown of the page
}
type Page struct {
PageHeader
Content string
}
func (s *Service) GetPages(ctx context.Context) (pages []PageHeader, err error) {
paths, err := s.fs.ReadDir("/")
if err != nil {
return
}
for _, path := range paths {
if strings.HasPrefix(path.Name(), ".") || // hidden files
strings.HasPrefix(path.Name(), "_") { // hidden pages
continue
}
page, err := s.getPageHeaders(ctx, path.Name())
if err != nil { // just ignore missing pages
slog.Error("could not open path", "path", path.Name(), "err", err)
continue
}
pages = append(pages, page)
}
return
}
func (s *Service) GetPage(ctx context.Context, uid string) (page Page, err error) {
p, err := s.getPageHeaders(ctx, uid)
if err != nil {
return
}
html, err := s.getHTML(ctx, p)
if err != nil {
return
}
page = Page{
PageHeader: p,
Content: string(html),
}
return
}