Compare commits

...

2 Commits

Author SHA1 Message Date
xing
cd5a9eadd7 customcss 2023-02-16 23:12:16 +08:00
xing
49b51dadcb 完善 bodyclass 2023-02-16 22:57:53 +08:00
7 changed files with 42 additions and 20 deletions

View File

@ -2,7 +2,6 @@ package common
import ( import (
"fmt" "fmt"
"github.com/fthvgb1/wp-go/helper/maps"
"github.com/fthvgb1/wp-go/helper/slice" "github.com/fthvgb1/wp-go/helper/slice"
str "github.com/fthvgb1/wp-go/helper/strings" str "github.com/fthvgb1/wp-go/helper/strings"
"github.com/fthvgb1/wp-go/internal/pkg/cache" "github.com/fthvgb1/wp-go/internal/pkg/cache"
@ -21,22 +20,6 @@ var commonClass = map[int]string{
constraints.Detail: "post-template-default single single-post ", constraints.Detail: "post-template-default single single-post ",
} }
type Support map[string]struct{}
var themeSupport = map[string]Support{}
func AddThemeSupport(theme string, support Support) {
themeSupport[theme] = support
}
func (h *Handle) IsSupport(name string) bool {
m, ok := themeSupport[h.Theme]
if ok {
return maps.IsExists(m, name)
}
return ok
}
func (h *Handle) CalBodyClass() { func (h *Handle) CalBodyClass() {
h.GinH["bodyClass"] = h.bodyClass(h.Class...) h.GinH["bodyClass"] = h.bodyClass(h.Class...)
} }
@ -46,6 +29,7 @@ func (h *Handle) bodyClass(class ...string) string {
if constraints.Ok != h.Stats { if constraints.Ok != h.Stats {
return "error404" return "error404"
} }
mods, err := wpconfig.GetThemeMods(h.Theme)
switch h.Scene { switch h.Scene {
case constraints.Search: case constraints.Search:
s = "search-no-results" s = "search-no-results"
@ -66,12 +50,12 @@ func (h *Handle) bodyClass(class ...string) string {
s = fmt.Sprintf("category-%v category-%v", s, cate.Terms.TermId) s = fmt.Sprintf("category-%v category-%v", s, cate.Terms.TermId)
case constraints.Detail: case constraints.Detail:
s = fmt.Sprintf("postid-%d", h.GinH["post"].(models.Posts).Id) s = fmt.Sprintf("postid-%d", h.GinH["post"].(models.Posts).Id)
if h.IsSupport("post-formats") { if len(mods.ThemeSupport.PostFormats) > 0 {
s = str.Join(s, " single-format-standard") s = str.Join(s, " single-format-standard")
} }
} }
class = append(class, s) class = append(class, s)
mods, err := wpconfig.GetThemeMods(h.Theme)
if err == nil { if err == nil {
if wpconfig.IsCustomBackground(h.Theme) { if wpconfig.IsCustomBackground(h.Theme) {
class = append(class, "custom-background") class = append(class, "custom-background")

View File

@ -0,0 +1,33 @@
package common
import (
"fmt"
"github.com/fthvgb1/wp-go/helper/html"
"github.com/fthvgb1/wp-go/internal/pkg/cache"
"github.com/fthvgb1/wp-go/internal/wpconfig"
"github.com/fthvgb1/wp-go/safety"
)
var css = safety.NewVar("default")
func (h *Handle) CalCustomCss() (r string) {
mods, err := wpconfig.GetThemeMods(h.Theme)
if err != nil || mods.CustomCssPostId < 1 {
return
}
post, err := cache.GetPostById(h.C, uint64(mods.CustomCssPostId))
if err != nil || post.Id < 1 {
return
}
r = fmt.Sprintf(`<style id="wp-custom-css">%s</style>`, html.StripTags(post.PostContent, ""))
return
}
func (h *Handle) CustomCss() {
cs := css.Load()
if cs == "default" {
cs = h.CalCustomCss()
css.Store(cs)
}
h.GinH["customCss"] = cs
}

View File

@ -99,6 +99,7 @@ func (d *DetailHandle) Render() {
} }
d.SiteIcon() d.SiteIcon()
d.CustomLogo() d.CustomLogo()
d.CustomCss()
d.RenderComment() d.RenderComment()
d.CalBodyClass() d.CalBodyClass()
if d.Templ == "" { if d.Templ == "" {

View File

@ -114,6 +114,7 @@ func (i *IndexHandle) Render() {
i.Pagination() i.Pagination()
i.SiteIcon() i.SiteIcon()
i.CustomLogo() i.CustomLogo()
i.CustomCss()
i.CalBodyClass() i.CalBodyClass()
if i.Templ == "" { if i.Templ == "" {
i.Templ = fmt.Sprintf("%s/posts/index.gohtml", i.Theme) i.Templ = fmt.Sprintf("%s/posts/index.gohtml", i.Theme)

View File

@ -3,4 +3,5 @@ package common
func Reload() { func Reload() {
backgroud.Store("default") backgroud.Store("default")
icon.Store("default") icon.Store("default")
css.Store("default")
} }

View File

@ -11,7 +11,6 @@ import (
func InitTheme() { func InitTheme() {
addThemeHookFunc(twentyfifteen.ThemeName, twentyfifteen.Hook) addThemeHookFunc(twentyfifteen.ThemeName, twentyfifteen.Hook)
addThemeHookFunc(twentyseventeen.ThemeName, twentyseventeen.Hook) addThemeHookFunc(twentyseventeen.ThemeName, twentyseventeen.Hook)
common.AddThemeSupport(twentyfifteen.ThemeName, twentyfifteen.ThemeSupport())
} }
func Reload() { func Reload() {

View File

@ -68,5 +68,8 @@
{{if .siteIcon}} {{if .siteIcon}}
{{.siteIcon|unescaped}} {{.siteIcon|unescaped}}
{{end}} {{end}}
{{if .customCss}}
{{.customCss|unescaped}}
{{end}}
{{end}} {{end}}