aboutsummaryrefslogtreecommitdiffstats
path: root/modules/context
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2023-04-08 21:15:22 +0800
committerGitHub <noreply@github.com>2023-04-08 21:15:22 +0800
commitfdbd64611383f8b78dc76765f6edfa3e40a3a0bf (patch)
treedae3fa75aeaf28a8abd9565fb544ae8b72d9e530 /modules/context
parentcf5a281fdc23543584a3a06fcfcf796b08425a79 (diff)
downloadgitea-fdbd64611383f8b78dc76765f6edfa3e40a3a0bf.tar.gz
gitea-fdbd64611383f8b78dc76765f6edfa3e40a3a0bf.zip
Group template helper functions, remove `Printf`, improve template error messages (#23982)
Follow #23328 Major changes: * Group the function in `templates/help.go` by their purposes. It could make future work easier. * Remove the `Printf` helper function, there is already a builtin `printf`. * Remove `DiffStatsWidth`, replace with `Eval` in template * Rename the `NewTextFuncMap` to `mailSubjectTextFuncMap`, it's for subject text template only, no need to make it support HTML functions. ---- And fine tune template error messages, to make it more friendly to developers and users. ![image](https://user-images.githubusercontent.com/2114189/230714245-4fd202d1-2b25-41b2-8be5-03c5fee45091.png) ![image](https://user-images.githubusercontent.com/2114189/230714277-66783577-2a03-49d5-8e8c-ceba5e07a2d4.png) --------- Co-authored-by: silverwind <me@silverwind.io>
Diffstat (limited to 'modules/context')
-rw-r--r--modules/context/context.go8
1 files changed, 4 insertions, 4 deletions
diff --git a/modules/context/context.go b/modules/context/context.go
index 04f8a9bd3d..bd561be0f5 100644
--- a/modules/context/context.go
+++ b/modules/context/context.go
@@ -47,7 +47,7 @@ import (
// Render represents a template render
type Render interface {
- TemplateLookup(tmpl string) *template.Template
+ TemplateLookup(tmpl string) (*template.Template, error)
HTML(w io.Writer, status int, name string, data interface{}) error
}
@@ -228,7 +228,7 @@ func (ctx *Context) HTML(status int, name base.TplName) {
}
if err := ctx.Render.HTML(ctx.Resp, status, string(name), templates.BaseVars().Merge(ctx.Data)); err != nil {
if status == http.StatusInternalServerError && name == base.TplName("status/500") {
- ctx.PlainText(http.StatusInternalServerError, "Unable to find status/500 template")
+ ctx.PlainText(http.StatusInternalServerError, "Unable to find HTML templates, the template system is not initialized, or Gitea can't find your template files.")
return
}
if execErr, ok := err.(texttemplate.ExecError); ok {
@@ -247,7 +247,7 @@ func (ctx *Context) HTML(status int, name base.TplName) {
if errorTemplateName != string(name) {
filename += " (subtemplate of " + string(name) + ")"
}
- err = fmt.Errorf("%w\nin template file %s:\n%s", err, filename, templates.GetLineFromTemplate(errorTemplateName, line, target, pos))
+ err = fmt.Errorf("failed to render %s, error: %w:\n%s", filename, err, templates.GetLineFromTemplate(errorTemplateName, line, target, pos))
} else {
filename, filenameErr := templates.GetAssetFilename("templates/" + execErr.Name + ".tmpl")
if filenameErr != nil {
@@ -256,7 +256,7 @@ func (ctx *Context) HTML(status int, name base.TplName) {
if execErr.Name != string(name) {
filename += " (subtemplate of " + string(name) + ")"
}
- err = fmt.Errorf("%w\nin template file %s", err, filename)
+ err = fmt.Errorf("failed to render %s, error: %w", filename, err)
}
}
ctx.ServerError("Render failed", err)