完善seventeen 添加customheader

This commit is contained in:
xing 2023-02-28 19:44:19 +08:00
parent ccc02399ef
commit e1d8c0098f
3 changed files with 56 additions and 2 deletions

View File

@ -43,6 +43,7 @@ func NewHandle(c *gin.Context, scene int, theme string) *Handle {
Stats: constraints.Ok, Stats: constraints.Ok,
ThemeMods: mods, ThemeMods: mods,
Components: make(map[string][]Components), Components: make(map[string][]Components),
HandleFns: make(map[int][]HandleFn[*Handle]),
} }
} }

View File

@ -0,0 +1,47 @@
package twentyseventeen
import (
"fmt"
"github.com/fthvgb1/wp-go/internal/theme/common"
)
func customHeader(h *common.Handle) (r string) {
headerTextColor := h.ThemeMods.HeaderTextcolor
if headerTextColor == "" || headerTextColor == h.ThemeMods.ThemeSupport.CustomHeader.DefaultTextColor {
return
}
css := `
.site-title,
.site-description {
position: absolute;
clip: rect(1px, 1px, 1px, 1px);
}`
if headerTextColor != "blank" {
css = fmt.Sprintf(customHeaderCss, headerTextColor)
}
r = fmt.Sprintf(`<style id="twentyseventeen-custom-header-styles" type="text/css">%s</style>`, css)
return
}
var customHeaderCss = `
.site-title a,
.colors-dark .site-title a,
.colors-custom .site-title a,
body.has-header-image .site-title a,
body.has-header-video .site-title a,
body.has-header-image.colors-dark .site-title a,
body.has-header-video.colors-dark .site-title a,
body.has-header-image.colors-custom .site-title a,
body.has-header-video.colors-custom .site-title a,
.site-description,
.colors-dark .site-description,
.colors-custom .site-description,
body.has-header-image .site-description,
body.has-header-video .site-description,
body.has-header-image.colors-dark .site-description,
body.has-header-video.colors-dark .site-description,
body.has-header-image.colors-custom .site-description,
body.has-header-video.colors-custom .site-description {
color: #%s;
}
`

View File

@ -27,20 +27,26 @@ var paginate = func() plugins.PageEle {
return p return p
}() }()
var pipe = common.HandlePipe(common.Render, dispatch) var pipe = common.HandlePipe(common.Render, ready, dispatch)
func Hook(h *common.Handle) { func Hook(h *common.Handle) {
pipe(h) pipe(h)
} }
func dispatch(next common.HandleFn[*common.Handle], h *common.Handle) { func ready(next common.HandleFn[*common.Handle], h *common.Handle) {
h.WidgetAreaData() h.WidgetAreaData()
h.GetPassword() h.GetPassword()
h.PushHandleFn(constraints.AllStats, calClass) h.PushHandleFn(constraints.AllStats, calClass)
h.PushHeadScript( h.PushHeadScript(
common.NewComponents(colorScheme, 10), common.NewComponents(colorScheme, 10),
common.NewComponents(customHeader, 10),
) )
h.GinH["HeaderImage"] = getHeaderImage(h) h.GinH["HeaderImage"] = getHeaderImage(h)
h.GinH["scene"] = h.Scene
next(h)
}
func dispatch(next common.HandleFn[*common.Handle], h *common.Handle) {
switch h.Scene { switch h.Scene {
case constraints.Detail: case constraints.Detail:
detail(next, h.Detail) detail(next, h.Detail)