Added site setting.

This commit is contained in:
Leon Mika 2025-02-02 09:54:30 +11:00
parent 39611070f8
commit 3774c903e2
17 changed files with 170 additions and 18 deletions

View file

@ -2,11 +2,26 @@ package themes
import "lmika.dev/lmika/hugo-cms/models"
var themes = map[string]models.ThemeMeta{
"bear": models.ThemeMeta{
Name: "bear",
var themes = []models.ThemeMeta{
{
ID: "bear",
Name: "Bear",
URL: "https://github.com/janraasch/hugo-bearblog",
PreferTitle: true,
PostDir: "blog",
},
{
ID: "terminal",
Name: "Terminal",
URL: "https://github.com/panr/hugo-theme-terminal",
PreferTitle: true,
PostDir: "posts",
},
{
ID: "yingyang",
Name: "Yingyang",
URL: "https://github.com/joway/hugo-theme-yinyang",
PreferTitle: true,
PostDir: "posts",
},
}

View file

@ -1,14 +1,33 @@
package themes
import "lmika.dev/lmika/hugo-cms/models"
import (
"lmika.dev/lmika/hugo-cms/models"
"lmika.dev/pkg/modash/momap"
"slices"
"sort"
)
type Provider struct{}
type Provider struct {
themes []models.ThemeMeta
themeIndex map[string]models.ThemeMeta
}
func New() *Provider {
return &Provider{}
ts := slices.Clone(themes)
sort.Slice(ts, func(i, j int) bool { return ts[i].Name < ts[j].Name })
ti := momap.IndexSlice(themes, func(m models.ThemeMeta) string { return m.ID })
return &Provider{
themes: ts,
themeIndex: ti,
}
}
func (p *Provider) Themes() []models.ThemeMeta {
return p.themes
}
func (p *Provider) Lookup(name string) (models.ThemeMeta, bool) {
t, ok := themes[name]
t, ok := p.themeIndex[name]
return t, ok
}