diff options
Diffstat (limited to 'templates.go')
-rw-r--r-- | templates.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/templates.go b/templates.go index ddce7ea..e31f06f 100644 --- a/templates.go +++ b/templates.go @@ -8,3 +8,21 @@ import ( //go:embed templates/*.gmi var geminiTemplateFS embed.FS var geminiTemplate = template.Must(template.ParseFS(geminiTemplateFS, "templates/*.gmi")) + +func addTemplates(base *template.Template, additions *template.Template) (*template.Template, error) { + base, err := base.Clone() + if err != nil { + return nil, err + } + if additions == nil { + return base, nil + } + + for _, addition := range additions.Templates() { + if _, err := base.AddParseTree(addition.Name(), addition.Tree); err != nil { + return nil, err + } + } + + return base, nil +} |