优化模板渲染
This commit is contained in:
@@ -4,11 +4,8 @@ import (
|
||||
"bytes"
|
||||
"io"
|
||||
"net/http"
|
||||
"text/template"
|
||||
|
||||
"code.d7z.net/d7z-project/gitea-pages/pkg/utils"
|
||||
|
||||
sprig "github.com/go-task/slim-sprig/v3"
|
||||
)
|
||||
|
||||
type GoTemplate struct{}
|
||||
@@ -23,7 +20,8 @@ func (g GoTemplate) Render(w http.ResponseWriter, r *http.Request, input io.Read
|
||||
return err
|
||||
}
|
||||
out := &bytes.Buffer{}
|
||||
parse, err := template.New("tmpl").Funcs(sprig.FuncMap()).Option("missingkey=error").Parse(string(dataB))
|
||||
|
||||
parse, err := utils.NewTemplate(string(dataB))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -9,6 +9,8 @@ import (
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"go.uber.org/zap"
|
||||
|
||||
@@ -69,9 +71,11 @@ func NewPageServer(backend core.Backend, options ServerOptions) *Server {
|
||||
}
|
||||
|
||||
func (s *Server) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
|
||||
sessionId, _ := uuid.NewRandom()
|
||||
request.Header.Set("Session-ID", sessionId.String())
|
||||
defer func() {
|
||||
if e := recover(); e != nil {
|
||||
zap.L().Error("panic!", zap.Any("error", e))
|
||||
zap.L().Error("panic!", zap.Any("error", e), zap.Any("id", sessionId))
|
||||
if err, ok := e.(error); ok {
|
||||
s.options.DefaultErrorHandler(writer, request, err)
|
||||
}
|
||||
@@ -79,7 +83,7 @@ func (s *Server) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
|
||||
}()
|
||||
err := s.Serve(writer, request)
|
||||
if err != nil {
|
||||
zap.L().Debug("错误请求", zap.Error(err), zap.Any("request", request.RequestURI))
|
||||
zap.L().Debug("错误请求", zap.Error(err), zap.Any("request", request.RequestURI), zap.Any("id", sessionId))
|
||||
s.options.DefaultErrorHandler(writer, request, err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,18 @@ func NewTemplateInject(r *http.Request, def map[string]any) map[string]any {
|
||||
return def
|
||||
}
|
||||
|
||||
func NewTemplate(data string) *template.Template {
|
||||
return template.Must(template.New("err").Funcs(sprig.FuncMap()).Parse(data))
|
||||
func MustTemplate(data string) *template.Template {
|
||||
newTemplate, err := NewTemplate(data)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return newTemplate
|
||||
}
|
||||
|
||||
func NewTemplate(data string) (*template.Template, error) {
|
||||
funcMap := sprig.FuncMap()
|
||||
delete(funcMap, "env")
|
||||
delete(funcMap, "expandenv")
|
||||
t := template.New("tmpl").Funcs(funcMap)
|
||||
return t.Parse(data)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user