From 7e7f72100209c0cc2811f57413a2c862dc051e21 Mon Sep 17 00:00:00 2001 From: Ivan Reshetnikov Date: Tue, 1 Jul 2025 13:32:45 +0500 Subject: [PATCH 1/2] Add Makefile --- Makefile | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0a9d898 --- /dev/null +++ b/Makefile @@ -0,0 +1,10 @@ +all: fmt vet test + +fmt: + go fmt ./... + +vet: + go vet ./... + +test: + go test -vet=off ./... From 7c8ffa33c001747b6acb3d9c9f537f091fe10d15 Mon Sep 17 00:00:00 2001 From: Ivan Reshetnikov Date: Thu, 10 Jul 2025 23:03:23 +0500 Subject: [PATCH 2/2] Add support for FuncMap --- loader.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/loader.go b/loader.go index 2964e82..390fb64 100644 --- a/loader.go +++ b/loader.go @@ -23,6 +23,7 @@ type Collection struct { type Options struct { // Files from shared collections will be available in every main template. SharedCollections []Collection + FuncMap template.FuncMap } // Load templates from specified directories with default options. @@ -38,6 +39,7 @@ func LoadWithOptions( options Options, ) (map[string]*template.Template, error) { sharedTemplate := template.New("") + for _, stp := range options.SharedCollections { files, err := getFiles(stp.RootDir, stp.Prefix) if err != nil { @@ -45,7 +47,12 @@ func LoadWithOptions( } for name, contents := range files { - sharedTemplate, err = sharedTemplate.New(name).Parse(contents) + sharedTemplate = sharedTemplate.New(name) + if options.FuncMap != nil { + sharedTemplate = sharedTemplate.Funcs(options.FuncMap) + } + + sharedTemplate, err = sharedTemplate.Parse(contents) if err != nil { return nil, err }