Documentation
¶
Overview ¶
Package template is a thin wrapper around the standard html/template and text/template packages that implements a convenient registry to load and cache templates on the fly concurrently.
It was created to assist the JSVM plugin HTML rendering, but could be used in other Go code.
Example:
registry := template.NewRegistry()
html1, err := registry.LoadFiles(
// the files set wil be parsed only once and then cached
"layout.html",
"content.html",
).Render(map[string]any{"name": "John"})
html2, err := registry.LoadFiles(
// reuse the already parsed and cached files set
"layout.html",
"content.html",
).Render(map[string]any{"name": "Jane"})
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry defines a templates registry that is safe to be used by multiple goroutines.
Use the Registry.Load* methods to load templates into the registry.
func NewRegistry ¶
func NewRegistry() *Registry
NewRegistry creates and initializes a new templates registry with some defaults (eg. global "raw" template function for unescaped HTML).
Use the Registry.Load* methods to load templates into the registry.
func (*Registry) AddFuncs ¶
AddFuncs registers new global template functions.
The key of each map entry is the function name that will be used in the templates. If a function with the map entry name already exists it will be replaced with the new one.
The value of each map entry is a function that must have either a single return value, or two return values of which the second has type error.
Example:
r.AddFuncs(map[string]any{
"toUpper": func(str string) string {
return strings.ToUppser(str)
},
...
})
func (*Registry) LoadFS ¶
LoadFS caches (if not already) the specified fs and globPatterns pair as single template and returns a ready to use Renderer instance.
There must be at least 1 file matching the provided globPattern(s) (note that most file names serves as glob patterns matching themselves).
func (*Registry) LoadFiles ¶
LoadFiles caches (if not already) the specified filenames set as a single template and returns a ready to use Renderer instance.
There must be at least 1 filename specified.
func (*Registry) LoadString ¶
LoadString caches (if not already) the specified inline string as a single template and returns a ready to use Renderer instance.