From e453425d1bbe7513cb85efab1abb0ba679d4b741 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E5=AD=90=E6=A1=93=F0=9F=8C=88?= Date: Thu, 13 Feb 2025 10:52:18 +0800 Subject: [PATCH] email: fix unable to override templates in custom directory (#7905) Co-authored-by: Joe Chen --- internal/cmd/web.go | 5 +++-- internal/email/email.go | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/cmd/web.go b/internal/cmd/web.go index 3be1db06f..deaddb579 100644 --- a/internal/cmd/web.go +++ b/internal/cmd/web.go @@ -112,14 +112,15 @@ func newMacaron() *macaron.Macaron { }, )) + customDir := filepath.Join(conf.CustomDir(), "templates") renderOpt := macaron.RenderOptions{ Directory: filepath.Join(conf.WorkDir(), "templates"), - AppendDirectories: []string{filepath.Join(conf.CustomDir(), "templates")}, + AppendDirectories: []string{customDir}, Funcs: template.FuncMap(), IndentJSON: macaron.Env != macaron.PROD, } if !conf.Server.LoadAssetsFromDisk { - renderOpt.TemplateFileSystem = templates.NewTemplateFileSystem("", renderOpt.AppendDirectories[0]) + renderOpt.TemplateFileSystem = templates.NewTemplateFileSystem("", customDir) } m.Use(macaron.Renderer(renderOpt)) diff --git a/internal/email/email.go b/internal/email/email.go index 939ca411e..aad5ab598 100644 --- a/internal/email/email.go +++ b/internal/email/email.go @@ -40,9 +40,10 @@ var ( // render renders a mail template with given data. func render(tpl string, data map[string]any) (string, error) { tplRenderOnce.Do(func() { + customDir := filepath.Join(conf.CustomDir(), "templates") opt := &macaron.RenderOptions{ Directory: filepath.Join(conf.WorkDir(), "templates", "mail"), - AppendDirectories: []string{filepath.Join(conf.CustomDir(), "templates", "mail")}, + AppendDirectories: []string{filepath.Join(customDir, "mail")}, Extensions: []string{".tmpl", ".html"}, Funcs: []template.FuncMap{map[string]any{ "AppName": func() string { @@ -60,7 +61,7 @@ func render(tpl string, data map[string]any) (string, error) { }}, } if !conf.Server.LoadAssetsFromDisk { - opt.TemplateFileSystem = templates.NewTemplateFileSystem("mail", opt.AppendDirectories[0]) + opt.TemplateFileSystem = templates.NewTemplateFileSystem("mail", customDir) } ts := macaron.NewTemplateSet()