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.