mirror of
https://github.com/caddyserver/caddy.git
synced 2024-11-25 17:56:34 +08:00
template: support custom functions
Signed-off-by: Tw <tw19881113@gmail.com>
This commit is contained in:
parent
236341f78b
commit
f77a7a805a
|
@ -244,6 +244,9 @@ func (c Context) Markdown(filename string) (string, error) {
|
||||||
return string(markdown), nil
|
return string(markdown), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TemplateFuncs contains user defined functions
|
||||||
|
var TemplateFuncs = template.FuncMap{}
|
||||||
|
|
||||||
// ContextInclude opens filename using fs and executes a template with the context ctx.
|
// ContextInclude opens filename using fs and executes a template with the context ctx.
|
||||||
// This does the same thing that Context.Include() does, but with the ability to provide
|
// This does the same thing that Context.Include() does, but with the ability to provide
|
||||||
// your own context so that the included files can have access to additional fields your
|
// your own context so that the included files can have access to additional fields your
|
||||||
|
@ -261,7 +264,8 @@ func ContextInclude(filename string, ctx interface{}, fs http.FileSystem) (strin
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
tpl, err := template.New(filename).Parse(string(body))
|
tpl := template.New(filename).Funcs(TemplateFuncs)
|
||||||
|
tpl, err = tpl.Parse(string(body))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,9 @@ func (t Templates) ServeHTTP(w http.ResponseWriter, r *http.Request) (int, error
|
||||||
tpl.Delims(rule.Delims[0], rule.Delims[1])
|
tpl.Delims(rule.Delims[0], rule.Delims[1])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add custom functions
|
||||||
|
tpl.Funcs(httpserver.TemplateFuncs)
|
||||||
|
|
||||||
// Build the template
|
// Build the template
|
||||||
templatePath := filepath.Join(t.Root, fpath)
|
templatePath := filepath.Join(t.Root, fpath)
|
||||||
tpl, err := tpl.ParseFiles(templatePath)
|
tpl, err := tpl.ParseFiles(templatePath)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user