diff options
| author | 2025-08-19 16:05:37 +0700 | |
|---|---|---|
| committer | 2025-08-19 16:05:37 +0700 | |
| commit | 0d8aa40ce197b10e32f2e6cc378188b71a83689f (patch) | |
| tree | 0b3ed0e352836ede51e82ceaff8c9386e934802c /internal/templatemanager/templatemanager.go | |
| parent | 6401cf603f598a8008c69a14fe58f460009180a7 (diff) | |
| parent | 53923cf49f46041c82bbb0cbc155e4bdcc9e1a5d (diff) | |
| download | web-0d8aa40ce197b10e32f2e6cc378188b71a83689f.tar.gz web-0d8aa40ce197b10e32f2e6cc378188b71a83689f.zip | |
v0.6.1v0.6.1
feat(map): enable marker clustering via plugin
refactor: move template manager definition to router package
Diffstat (limited to 'internal/templatemanager/templatemanager.go')
| -rw-r--r-- | internal/templatemanager/templatemanager.go | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/internal/templatemanager/templatemanager.go b/internal/templatemanager/templatemanager.go index 5effcb3..f89d0c8 100644 --- a/internal/templatemanager/templatemanager.go +++ b/internal/templatemanager/templatemanager.go @@ -22,7 +22,7 @@ type TemplateManagerTemplates struct { Files []string } -func NewTemplateManager(templates []TemplateManagerTemplates) (*TemplateManager, error) { +func NewTemplateManager(templates ...TemplateManagerTemplates) (*TemplateManager, error) { templateMap := make(map[string]templateManagerRender) for _, tmplStruct := range templates { @@ -37,7 +37,6 @@ func NewTemplateManager(templates []TemplateManagerTemplates) (*TemplateManager, Main: filepath.Base(tmplStruct.Files[0]), Tmpl: tmpl, } - } return &TemplateManager{ @@ -55,3 +54,24 @@ func (tm *TemplateManager) Render(name string, data interface{}) ([]byte, error) err := tmpl.Tmpl.ExecuteTemplate(&buf, tmpl.Main, data) return buf.Bytes(), err } + +func (tm *TemplateManager) Add(name string, files ...string) error { + if len(files) == 0 { + return fmt.Errorf("you can't add template without any files") + } + + tmpl := template.New("").Funcs(template.FuncMap{ + "contains": strings.Contains, + }) + + tmpl, err := tmpl.ParseFiles(files...) + if err != nil { + return fmt.Errorf("failed to add template into manager: %w", err) + } + + tm.templates[name] = templateManagerRender{ + Main: filepath.Base(files[0]), + Tmpl: tmpl, + } + return nil +} |