diff --git a/config.go b/config.go index bb2d4ce..711332d 100644 --- a/config.go +++ b/config.go @@ -2,14 +2,12 @@ package main import ( _ "embed" - "html/template" "net/http" "os" "path/filepath" + "text/template" "time" - sprig "github.com/go-task/slim-sprig/v3" - "github.com/alecthomas/units" "code.d7z.net/d7z-project/gitea-pages/pkg" @@ -54,13 +52,13 @@ func (c *Config) NewPageServerOptions() (*pkg.ServerOptions, error) { if c.Page.DefaultBranch == "" { c.Page.DefaultBranch = "gh-pages" } - defaultErr := template.Must(template.New("err").Funcs(sprig.FuncMap()).Parse(defaultErrPage)) + defaultErr := utils.NewTemplate(defaultErrPage) if c.Page.ErrUnknownPage != "" { data, err := os.ReadFile(c.Page.ErrUnknownPage) if err != nil { return nil, errors.Wrapf(err, "failed to read file %s", string(data)) } - c.pageErrUnknown = template.Must(template.New("err").Funcs(sprig.FuncMap()).Parse(c.Page.ErrUnknownPage)) + c.pageErrUnknown = utils.NewTemplate(c.Page.ErrUnknownPage) } else { c.pageErrUnknown = defaultErr } @@ -69,7 +67,7 @@ func (c *Config) NewPageServerOptions() (*pkg.ServerOptions, error) { if err != nil { return nil, errors.Wrapf(err, "failed to read file %s", c.Page.ErrNotFoundPage) } - c.pageErrNotFound = template.Must(template.New("err").Funcs(sprig.FuncMap()).Parse(string(data))) + c.pageErrNotFound = utils.NewTemplate(string(data)) } else { c.pageErrNotFound = defaultErr } @@ -100,6 +98,7 @@ func (c *Config) ErrorHandler(w http.ResponseWriter, r *http.Request, err error) w.WriteHeader(http.StatusNotFound) if err = c.pageErrNotFound.Execute(w, utils.NewTemplateInject(r, map[string]any{ "Error": err, + "Path": r.URL.Path, "Code": 404, })); err != nil { zap.L().Error("failed to render error page", zap.Error(err)) @@ -108,6 +107,7 @@ func (c *Config) ErrorHandler(w http.ResponseWriter, r *http.Request, err error) w.WriteHeader(http.StatusInternalServerError) if err = c.pageErrUnknown.Execute(w, utils.NewTemplateInject(r, map[string]any{ "Error": err, + "Path": r.URL.Path, "Code": 500, })); err != nil { zap.L().Error("failed to render error page", zap.Error(err)) diff --git a/errors.html.tmpl b/errors.html.tmpl index 710a58c..687601f 100644 --- a/errors.html.tmpl +++ b/errors.html.tmpl @@ -5,11 +5,11 @@ -{{ if eq .code 404 }}