mirror of
https://github.com/Theodor-Springmann-Stiftung/lenz-web.git
synced 2025-10-28 16:55:32 +00:00
Cache Key Gen
This commit is contained in:
@@ -3,6 +3,7 @@ package server
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/gofiber/storage/memory/v2"
|
||||
)
|
||||
|
||||
@@ -17,5 +18,10 @@ const (
|
||||
func NewCache() Cache {
|
||||
return Cache{memory.New(memory.Config{
|
||||
GCInterval: CACHE_GC_INTERVAL,
|
||||
})}
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
func KeyGenerator(c *fiber.Ctx) string {
|
||||
return c.Path() + c.Context().QueryArgs().String()
|
||||
}
|
||||
|
||||
@@ -53,6 +53,7 @@ func New(engine *templating.Engine, storage fiber.Storage, debug bool) Server {
|
||||
Expiration: CACHE_TIME,
|
||||
CacheControl: false,
|
||||
Storage: storage,
|
||||
KeyGenerator: KeyGenerator,
|
||||
}))
|
||||
server.Use(logger.New())
|
||||
}
|
||||
|
||||
@@ -189,7 +189,7 @@ func (e *Engine) AddFuncs(funcs template.FuncMap) {
|
||||
}
|
||||
|
||||
func (e *Engine) Render(out io.Writer, path string, data any, layout ...string) error {
|
||||
slog.Debug("Rendering", "path", path, "layout", layout, "data", data)
|
||||
// slog.Debug("Rendering", "path", path, "layout", layout, "data", data)
|
||||
e.mu.RLock()
|
||||
ld := data.(fiber.Map)
|
||||
if e.GlobalData != nil {
|
||||
|
||||
@@ -74,9 +74,11 @@ func Iterate[T any](xmlData string, initialState T) iter.Seq2[*TokenResult[T], e
|
||||
}
|
||||
customToken = Token{Name: t.Name.Local, Inner: t, Type: EndElement}
|
||||
case xml.CharData:
|
||||
text := strings.TrimSpace(string(t))
|
||||
text := string(t)
|
||||
if text != "" && len(stack) > 0 {
|
||||
stack[len(stack)-1].CharData += text + " "
|
||||
for i := range stack {
|
||||
stack[i].CharData += text
|
||||
}
|
||||
}
|
||||
customToken = Token{
|
||||
Name: "CharData",
|
||||
@@ -110,7 +112,7 @@ func Iterate[T any](xmlData string, initialState T) iter.Seq2[*TokenResult[T], e
|
||||
result := &TokenResult[T]{
|
||||
State: state,
|
||||
Token: customToken,
|
||||
Stack: append([]Element{}, stack...),
|
||||
Stack: stack,
|
||||
}
|
||||
|
||||
if !yield(result, nil) {
|
||||
|
||||
Reference in New Issue
Block a user