Add Sprig and other tpl functions to static templates as well. Closes #1527.
This commit is contained in:
parent
7019f26280
commit
717a6362d2
1 changed files with 31 additions and 32 deletions
63
cmd/init.go
63
cmd/init.go
|
@ -605,33 +605,7 @@ func initMediaStore() media.Store {
|
||||||
// initNotifTemplates compiles and returns e-mail notification templates that are
|
// initNotifTemplates compiles and returns e-mail notification templates that are
|
||||||
// used for sending ad-hoc notifications to admins and subscribers.
|
// used for sending ad-hoc notifications to admins and subscribers.
|
||||||
func initNotifTemplates(path string, fs stuffbin.FileSystem, i *i18n.I18n, cs *constants) *notifTpls {
|
func initNotifTemplates(path string, fs stuffbin.FileSystem, i *i18n.I18n, cs *constants) *notifTpls {
|
||||||
// Register utility functions that the e-mail templates can use.
|
tpls, err := stuffbin.ParseTemplatesGlob(initTplFuncs(i, cs), fs, "/static/email-templates/*.html")
|
||||||
funcs := template.FuncMap{
|
|
||||||
"RootURL": func() string {
|
|
||||||
return cs.RootURL
|
|
||||||
},
|
|
||||||
"LogoURL": func() string {
|
|
||||||
return cs.LogoURL
|
|
||||||
},
|
|
||||||
"Date": func(layout string) string {
|
|
||||||
if layout == "" {
|
|
||||||
layout = time.ANSIC
|
|
||||||
}
|
|
||||||
return time.Now().Format(layout)
|
|
||||||
},
|
|
||||||
"L": func() *i18n.I18n {
|
|
||||||
return i
|
|
||||||
},
|
|
||||||
"Safe": func(safeHTML string) template.HTML {
|
|
||||||
return template.HTML(safeHTML)
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
for k, v := range sprig.GenericFuncMap() {
|
|
||||||
funcs[k] = v
|
|
||||||
}
|
|
||||||
|
|
||||||
tpls, err := stuffbin.ParseTemplatesGlob(funcs, fs, "/static/email-templates/*.html")
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
lo.Fatalf("error parsing e-mail notif templates: %v", err)
|
lo.Fatalf("error parsing e-mail notif templates: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -760,11 +734,7 @@ func initHTTPServer(app *App) *echo.Echo {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// Parse and load user facing templates.
|
tpl, err := stuffbin.ParseTemplatesGlob(initTplFuncs(app.i18n, app.constants), app.fs, "/public/templates/*.html")
|
||||||
tpl, err := stuffbin.ParseTemplatesGlob(template.FuncMap{
|
|
||||||
"L": func() *i18n.I18n {
|
|
||||||
return app.i18n
|
|
||||||
}}, app.fs, "/public/templates/*.html")
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
lo.Fatalf("error parsing public templates: %v", err)
|
lo.Fatalf("error parsing public templates: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -858,3 +828,32 @@ func joinFSPaths(root string, paths []string) []string {
|
||||||
|
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func initTplFuncs(i *i18n.I18n, cs *constants) template.FuncMap {
|
||||||
|
funcs := template.FuncMap{
|
||||||
|
"RootURL": func() string {
|
||||||
|
return cs.RootURL
|
||||||
|
},
|
||||||
|
"LogoURL": func() string {
|
||||||
|
return cs.LogoURL
|
||||||
|
},
|
||||||
|
"Date": func(layout string) string {
|
||||||
|
if layout == "" {
|
||||||
|
layout = time.ANSIC
|
||||||
|
}
|
||||||
|
return time.Now().Format(layout)
|
||||||
|
},
|
||||||
|
"L": func() *i18n.I18n {
|
||||||
|
return i
|
||||||
|
},
|
||||||
|
"Safe": func(safeHTML string) template.HTML {
|
||||||
|
return template.HTML(safeHTML)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for k, v := range sprig.GenericFuncMap() {
|
||||||
|
funcs[k] = v
|
||||||
|
}
|
||||||
|
|
||||||
|
return funcs
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue