This commit is contained in:
xing 2023-03-12 14:25:22 +08:00
parent d211e49036
commit 12a1fea5ed
5 changed files with 37 additions and 14 deletions

View File

@ -107,7 +107,7 @@ func archiveUl(h *Handle, conf map[any]any, args map[string]string, archives []m
if showCount == 1 { if showCount == 1 {
count = fmt.Sprintf("(%v)", archive.Posts) count = fmt.Sprintf("(%v)", archive.Posts)
} }
s.Sprintf(`<li><a href="/p/date/%[1]s/%[2]02s">%[1]s年%[2]s月%[3]s</a></li>`, archive.Year, archive.Month, count) s.Sprintf(`<li><a href="/p/date/%[1]s/%02[2]s">%[1]s年%[2]s月%[3]s</a></li>`, archive.Year, archive.Month, count)
} }
return s.String() return s.String()
} }

View File

@ -57,7 +57,7 @@ func RecentPosts(h *Handle) string {
posts := slice.Map(cache.RecentPosts(h.C, int(conf["number"].(int64))), func(t models.Posts) string { posts := slice.Map(cache.RecentPosts(h.C, int(conf["number"].(int64))), func(t models.Posts) string {
t = ProjectTitle(t) t = ProjectTitle(t)
date := "" date := ""
if conf["show_date"].(bool) { if v, ok := conf["show_date"].(bool); ok && v {
date = fmt.Sprintf(`<span class="post-date">%s</span>`, t.PostDateGmt.Format("2006年01月02日")) date = fmt.Sprintf(`<span class="post-date">%s</span>`, t.PostDateGmt.Format("2006年01月02日"))
} }
ariaCurrent := "" ariaCurrent := ""

View File

@ -5,6 +5,7 @@ import (
"github.com/fthvgb1/wp-go/helper/maps" "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/constraints"
"github.com/fthvgb1/wp-go/internal/pkg/constraints/components" "github.com/fthvgb1/wp-go/internal/pkg/constraints/components"
"github.com/fthvgb1/wp-go/internal/wpconfig" "github.com/fthvgb1/wp-go/internal/wpconfig"
"strings" "strings"
@ -51,7 +52,10 @@ func SearchForm(h *Handle) string {
if args["{$title}"] != "" { if args["{$title}"] != "" {
args["{$title}"] = str.Join(args["{$before_title}"], args["{$title}"], args["{$after_title}"]) args["{$title}"] = str.Join(args["{$before_title}"], args["{$title}"], args["{$after_title}"])
} }
args["{$value}"] = html.SpecialChars(h.Index.Param.Search) args["{$value}"] = ""
if h.Scene() == constraints.Search {
args["{$value}"] = html.SpecialChars(h.Index.Param.Search)
}
form := html5SearchForm form := html5SearchForm
if !slice.IsContained(h.CommonThemeMods().ThemeSupport.HTML5, "search-form") { if !slice.IsContained(h.CommonThemeMods().ThemeSupport.HTML5, "search-form") {
form = xmlSearchForm form = xmlSearchForm

View File

@ -25,7 +25,7 @@ func (h *Handle) WidgetArea() {
return nil, false return nil, false
}) })
h.PushHandleFn(constraints.Ok, NewHandleFn(func(h *Handle) { h.PushHandleFn(constraints.Ok, NewHandleFn(func(h *Handle) {
h.PushGroupCacheComponentFn(constraints.SidebarsWidgets, constraints.SidebarsWidgets, 10, sidebar...) h.PushGroupComponentFns(constraints.SidebarsWidgets, 10, sidebar...)
}, 30)) }, 30))
h.ginH["categories"] = cache.CategoriesTags(h.C, constraints.Category) h.ginH["categories"] = cache.CategoriesTags(h.C, constraints.Category)
} }

View File

@ -41,7 +41,8 @@ type HandlePlugins map[string]HandleFn[*Handle]
// Components Order 为执行顺序,降序执行 // Components Order 为执行顺序,降序执行
type Components struct { type Components struct {
str string Str string
Fn func(*Handle) string
Order int Order int
} }
@ -54,8 +55,9 @@ type HandleCall struct {
Order int Order int
} }
func (h *Handle) ComponentFilterFn(name string) []func(*Handle, string) string { func (h *Handle) ComponentFilterFn(name string) ([]func(*Handle, string) string, bool) {
return h.componentFilterFn[name] fn, ok := h.componentFilterFn[name]
return fn, ok
} }
func (h *Handle) PushComponentFilterFn(name string, fns ...func(*Handle, string) string) { func (h *Handle) PushComponentFilterFn(name string, fns ...func(*Handle, string) string) {
@ -184,7 +186,7 @@ func NewHandle(c *gin.Context, scene int, theme string) *Handle {
} }
func (h *Handle) NewCacheComponent(name string, order int, fn func(handle *Handle) string) Components { func (h *Handle) NewCacheComponent(name string, order int, fn func(handle *Handle) string) Components {
return Components{str: h.CacheStr(name, fn), Order: order} return Components{Str: h.CacheStr(name, fn), Order: order}
} }
func (h *Handle) PushHandleFn(statsOrScene int, fns ...HandleCall) { func (h *Handle) PushHandleFn(statsOrScene int, fns ...HandleCall) {
@ -213,7 +215,7 @@ func (h *Handle) PushHeadScript(fn ...Components) {
h.PushComponents(constraints.HeadScript, fn...) h.PushComponents(constraints.HeadScript, fn...)
} }
func (h *Handle) PushGroupHeadScript(order int, str ...string) { func (h *Handle) PushGroupHeadScript(order int, str ...string) {
h.PushGroupComponents(constraints.HeadScript, order, str...) h.PushGroupComponentStrs(constraints.HeadScript, order, str...)
} }
func (h *Handle) PushCacheGroupHeadScript(key string, order int, fns ...func(*Handle) string) { func (h *Handle) PushCacheGroupHeadScript(key string, order int, fns ...func(*Handle) string) {
h.PushGroupCacheComponentFn(constraints.HeadScript, key, order, fns...) h.PushGroupCacheComponentFn(constraints.HeadScript, key, order, fns...)
@ -224,7 +226,7 @@ func (h *Handle) PushFooterScript(fn ...Components) {
} }
func (h *Handle) PushGroupFooterScript(order int, fns ...string) { func (h *Handle) PushGroupFooterScript(order int, fns ...string) {
h.PushGroupComponents(constraints.FooterScript, order, fns...) h.PushGroupComponentStrs(constraints.FooterScript, order, fns...)
} }
func (h *Handle) componentKey(name string) string { func (h *Handle) componentKey(name string) string {
@ -236,7 +238,7 @@ func (h *Handle) PushCacheGroupFooterScript(key string, order int, fns ...func(*
} }
func (h *Handle) PushGroupCacheComponentFn(name, key string, order int, fns ...func(*Handle) string) { func (h *Handle) PushGroupCacheComponentFn(name, key string, order int, fns ...func(*Handle) string) {
v := reload.GetStrBy(key, "\n", h, fns...) v := reload.GetStrBy(key, "\n", h, fns...)
h.PushGroupComponents(name, order, v) h.PushGroupComponentStrs(name, order, v)
} }
func (h *Handle) GetPassword() { func (h *Handle) GetPassword() {
@ -314,10 +316,24 @@ func (h *Handle) PushComponents(name string, components ...Components) {
h.components[k] = append(h.components[k], components...) h.components[k] = append(h.components[k], components...)
} }
func (h *Handle) PushGroupComponents(name string, order int, fns ...string) { func (h *Handle) PushGroupComponentStrs(name string, order int, fns ...string) {
var calls []Components var calls []Components
for _, fn := range fns { for _, fn := range fns {
calls = append(calls, Components{fn, order}) calls = append(calls, Components{
Str: fn,
Order: order,
})
}
k := h.componentKey(name)
h.components[k] = append(h.components[k], calls...)
}
func (h *Handle) PushGroupComponentFns(name string, order int, fns ...func(*Handle) string) {
var calls []Components
for _, fn := range fns {
calls = append(calls, Components{
Fn: fn,
Order: order,
})
} }
k := h.componentKey(name) k := h.componentKey(name)
h.components[k] = append(h.components[k], calls...) h.components[k] = append(h.components[k], calls...)
@ -329,7 +345,10 @@ func (h *Handle) CalMultipleComponents() {
return i.Order > j.Order return i.Order > j.Order
}) })
v := strings.Join(slice.FilterAndMap(ss, func(t Components) (string, bool) { v := strings.Join(slice.FilterAndMap(ss, func(t Components) (string, bool) {
s := t.str s := t.Str
if s == "" && t.Fn != nil {
s = t.Fn(h)
}
return s, s != "" return s, s != ""
}), "\n") }), "\n")
kk := strings.Split(k, "_") kk := strings.Split(k, "_")