Skip to content

Commit 03c7eff

Browse files
committed
add Filters and Tags
1 parent 4d141de commit 03c7eff

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

viewkit.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,10 @@ type ViewKit struct {
3434
DefaultTemplateFileExtension string
3535
// PreProcessors is a list of PreProcessor.
3636
PreProcessors []pongo2.PreProcessor
37-
37+
// Filters is a map of filters to be registered.
38+
Filters map[string]pongo2.FilterFunction
39+
// Tags is a map of tags to be registered.
40+
Tags map[string]pongo2.TagParser
3841
// Component config
3942

4043
// DisableComponentHTMLTag disables the HTML syntax extension for components.
@@ -106,6 +109,8 @@ func New() *ViewKit {
106109
BaseDir: "",
107110
DefaultTemplateFileExtension: ".html",
108111
PreProcessors: []pongo2.PreProcessor{},
112+
Filters: map[string]pongo2.FilterFunction{},
113+
Tags: map[string]pongo2.TagParser{},
109114
DisableComponentHTMLTag: false,
110115
ComponentHTMLTagPrefix: "x-",
111116
Components: []*pongo2.Component{},
@@ -186,6 +191,20 @@ func (v *ViewKit) Renderer() (*Renderer, error) {
186191
ts.ComponentSet.TemplateSetFS = templateSetFS
187192
ts.ComponentSet.DefaultTemplateFileExtension = v.DefaultTemplateFileExtension
188193

194+
// register filters
195+
for name, filter := range v.Filters {
196+
if err := ts.RegisterFilter(name, filter); err != nil {
197+
return nil, fmt.Errorf("failed to register filter %s: %w", name, err)
198+
}
199+
}
200+
201+
// register tags
202+
for name, tag := range v.Tags {
203+
if err := ts.RegisterTag(name, tag); err != nil {
204+
return nil, fmt.Errorf("failed to register tag %s: %w", name, err)
205+
}
206+
}
207+
189208
// register components
190209
for _, dir := range v.AnonymousComponentsDirectories {
191210
if err := ts.ComponentSet.RegisterTemplateFileComponentsDirectory(dir); err != nil {

0 commit comments

Comments
 (0)