aboutsummaryrefslogtreecommitdiffstats
path: root/modules/context/context.go
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2023-04-12 18:16:45 +0800
committerGitHub <noreply@github.com>2023-04-12 18:16:45 +0800
commit50a72e7a83a16d183a264e969a73cdbc7fb808f4 (patch)
tree013456110621c36edb3fa0d1bb77906ba8d4e013 /modules/context/context.go
parent42919ccb7cd32ab67d0878baf2bac6cd007899a8 (diff)
downloadgitea-50a72e7a83a16d183a264e969a73cdbc7fb808f4.tar.gz
gitea-50a72e7a83a16d183a264e969a73cdbc7fb808f4.zip
Use a general approach to access custom/static/builtin assets (#24022)
The idea is to use a Layered Asset File-system (modules/assetfs/layered.go) For example: when there are 2 layers: "custom", "builtin", when access to asset "my/page.tmpl", the Layered Asset File-system will first try to use "custom" assets, if not found, then use "builtin" assets. This approach will hugely simplify a lot of code, make them testable. Other changes: * Simplify the AssetsHandlerFunc code * Simplify the `gitea embedded` sub-command code --------- Co-authored-by: Jason Song <i@wolfogre.com> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'modules/context/context.go')
-rw-r--r--modules/context/context.go12
1 files changed, 4 insertions, 8 deletions
diff --git a/modules/context/context.go b/modules/context/context.go
index bd561be0f5..e2e120ba38 100644
--- a/modules/context/context.go
+++ b/modules/context/context.go
@@ -240,19 +240,15 @@ func (ctx *Context) HTML(status int, name base.TplName) {
}
line, _ := strconv.Atoi(lineStr) // Cannot error out as groups[2] is [1-9][0-9]*
pos, _ := strconv.Atoi(posStr) // Cannot error out as groups[3] is [1-9][0-9]*
- filename, filenameErr := templates.GetAssetFilename("templates/" + errorTemplateName + ".tmpl")
- if filenameErr != nil {
- filename = "(template) " + errorTemplateName
- }
+ assetLayerName := templates.AssetFS().GetFileLayerName(errorTemplateName + ".tmpl")
+ filename := fmt.Sprintf("(%s) %s", assetLayerName, errorTemplateName)
if errorTemplateName != string(name) {
filename += " (subtemplate of " + string(name) + ")"
}
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 {
- filename = "(template) " + execErr.Name
- }
+ assetLayerName := templates.AssetFS().GetFileLayerName(execErr.Name + ".tmpl")
+ filename := fmt.Sprintf("(%s) %s", assetLayerName, execErr.Name)
if execErr.Name != string(name) {
filename += " (subtemplate of " + string(name) + ")"
}