weiro/models/pubmodel/sites.go

28 lines
742 B
Go
Raw Normal View History

2026-02-19 10:21:27 +00:00
package pubmodel
import (
2026-03-05 11:04:24 +00:00
"context"
"io"
2026-03-05 11:04:24 +00:00
"iter"
"lmika.dev/lmika/weiro/models"
2026-03-24 09:23:07 +00:00
"lmika.dev/pkg/modash/moslice"
)
2026-02-19 10:21:27 +00:00
type Site struct {
models.Site
BaseURL string
Uploads []models.Upload
OpenUpload func(u models.Upload) (io.ReadCloser, error)
PostIter func(ctx context.Context) iter.Seq[models.Maybe[*models.Post]]
Categories []models.CategoryWithCount
PostIterByCategory func(ctx context.Context, categoryID int64) iter.Seq[models.Maybe[*models.Post]]
CategoriesOfPost func(ctx context.Context, postID int64) ([]*models.Category, error)
Pages []*models.Page
2026-02-19 10:21:27 +00:00
}
2026-03-24 09:23:07 +00:00
func (s Site) NavItems() []*models.Page {
return moslice.Filter(s.Pages, func(p *models.Page) bool { return p.ShowInNav })
}