diff --git a/internal/theme/common/common.go b/internal/theme/common/common.go index 9dd934b..fd238c9 100644 --- a/internal/theme/common/common.go +++ b/internal/theme/common/common.go @@ -43,6 +43,7 @@ func NewHandle(c *gin.Context, scene int, theme string) *Handle { Stats: constraints.Ok, ThemeMods: mods, Components: make(map[string][]Components), + HandleFns: make(map[int][]HandleFn[*Handle]), } } diff --git a/internal/theme/twentyseventeen/customheader.go b/internal/theme/twentyseventeen/customheader.go new file mode 100644 index 0000000..366afb4 --- /dev/null +++ b/internal/theme/twentyseventeen/customheader.go @@ -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(``, 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; + } +` diff --git a/internal/theme/twentyseventeen/twentyseventeen.go b/internal/theme/twentyseventeen/twentyseventeen.go index c11d50e..46e18d9 100644 --- a/internal/theme/twentyseventeen/twentyseventeen.go +++ b/internal/theme/twentyseventeen/twentyseventeen.go @@ -27,20 +27,26 @@ var paginate = func() plugins.PageEle { return p }() -var pipe = common.HandlePipe(common.Render, dispatch) +var pipe = common.HandlePipe(common.Render, ready, dispatch) func Hook(h *common.Handle) { 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.GetPassword() h.PushHandleFn(constraints.AllStats, calClass) h.PushHeadScript( common.NewComponents(colorScheme, 10), + common.NewComponents(customHeader, 10), ) 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 { case constraints.Detail: detail(next, h.Detail)