diff --git a/internal/theme/common/bodyclass.go b/internal/theme/common/bodyclass.go index 3bbc380..5fccfc0 100644 --- a/internal/theme/common/bodyclass.go +++ b/internal/theme/common/bodyclass.go @@ -11,16 +11,6 @@ import ( "strings" ) -var commonClass = map[int]string{ - constraints.Home: "home blog ", - constraints.Archive: "archive date ", - constraints.Category: "archive category ", - constraints.Tag: "archive category ", - constraints.Search: "search ", - constraints.Author: "archive author ", - constraints.Detail: "post-template-default single single-post ", -} - func (h *Handle) CalBodyClass() { h.GinH["bodyClass"] = h.BodyClass(h.Class...) } @@ -30,13 +20,21 @@ func (h *Handle) BodyClass(class ...string) string { return "error404" } switch h.Scene { + case constraints.Home: + class = append(class, "home", "blog") + + case constraints.Archive: + class = append(class, "archive", "date") + case constraints.Search: s := "search-no-results" if len(h.Index.Posts) > 0 { s = "search-results" } - class = append(class, s) + class = append(class, "search", s) + case constraints.Category, constraints.Tag: + class = append(class, "archive", "category") cat := h.Index.Param.Category _, cate := slice.SearchFirst(cache.CategoriesTags(h.C, h.Scene), func(my models.TermsMy) bool { return my.Name == cat @@ -47,6 +45,7 @@ func (h *Handle) BodyClass(class ...string) string { class = append(class, str.Join("category-", number.ToString(cate.Terms.TermId))) case constraints.Author: + class = append(class, "archive", "author") author := h.Index.Param.Author user, _ := cache.GetUserByName(h.C, author) class = append(class, str.Join("author-", number.ToString(user.Id))) @@ -55,6 +54,7 @@ func (h *Handle) BodyClass(class ...string) string { } case constraints.Detail: + class = append(class, "post-template-default", "single", "single-post") class = append(class, str.Join("postid-", number.ToString(h.Detail.Post.Id))) if len(h.ThemeMods.ThemeSupport.PostFormats) > 0 { class = append(class, "single-format-standard") @@ -69,6 +69,5 @@ func (h *Handle) BodyClass(class ...string) string { if h.ThemeMods.ThemeSupport.ResponsiveEmbeds { class = append(class, "wp-embed-responsive") } - class = append(class, strings.Fields(commonClass[h.Scene])...) - return strings.Join(slice.Reverse(class), " ") + return strings.Join(class, " ") } diff --git a/internal/theme/common/common.go b/internal/theme/common/common.go index bea546d..6bda89a 100644 --- a/internal/theme/common/common.go +++ b/internal/theme/common/common.go @@ -28,7 +28,7 @@ type Handle struct { Class []string Scripts map[string][]func(*Handle) string ThemeMods wpconfig.ThemeMods - HandleFns []func(*Handle) + HandleFns []HandleFn[*Handle] } func NewHandle(c *gin.Context, scene int, theme string) *Handle { @@ -47,11 +47,11 @@ func NewHandle(c *gin.Context, scene int, theme string) *Handle { } } -func (h *Handle) PushHandleFn(fns ...func(*Handle)) { +func (h *Handle) PushHandleFn(fns ...HandleFn[*Handle]) { h.HandleFns = append(h.HandleFns, fns...) } -func (h *Handle) AutoCal(name string, fn func(*Handle) string) { +func (h *Handle) PlushComponent(name string, fn func(*Handle) string) { v, ok := reload.GetStr(name) if !ok { v = fn(h) @@ -86,7 +86,7 @@ func (h *Handle) Render() { fn(h) } h.PushHeadScript(constraints.HeadScript, CalSiteIcon, CalCustomCss) - h.AutoCal("customLogo", CalCustomLogo) + h.PlushComponent("customLogo", CalCustomLogo) h.CalMultipleScript() h.CalBodyClass()