♻️ Imported urls namespace into templateutil

This commit is contained in:
Maxim Lebedev 2023-11-09 07:50:45 +06:00
parent 70853bc665
commit dd9cc5b2d1
Signed by: toby3d
GPG Key ID: 1F14E25B7C119FC5
1 changed files with 15 additions and 4 deletions

View File

@ -5,9 +5,11 @@ import (
"html/template"
"io/fs"
"source.toby3d.me/toby3d/home/internal/site"
"source.toby3d.me/toby3d/home/internal/templateutil/partials"
"source.toby3d.me/toby3d/home/internal/templateutil/safe"
"source.toby3d.me/toby3d/home/internal/templateutil/strings"
"source.toby3d.me/toby3d/home/internal/templateutil/urls"
)
type Function struct {
@ -16,7 +18,7 @@ type Function struct {
Name string
}
func New(dir fs.FS) (template.FuncMap, error) {
func New(dir fs.FS, siter site.UseCase) (template.FuncMap, error) {
partialDir, err := fs.Sub(dir, "partials")
if err != nil {
return nil, fmt.Errorf("cannot substitute into partials subdirectory: %w", err)
@ -41,12 +43,21 @@ func New(dir fs.FS) (template.FuncMap, error) {
"safeHTML": safeNamespace.HTML,
},
})
partialNamespace := partials.New(partialDir, funcMap)
partialsNamespace := partials.New(partialDir, funcMap)
funcs = append(funcs, Function{
Name: "partials",
Handler: func(v ...any) any { return partialNamespace },
Handler: func(v ...any) any { return partialsNamespace },
Methods: template.FuncMap{
"partial": partialNamespace.Include,
"partial": partialsNamespace.Include,
},
})
urlsNamespace := urls.New(siter)
funcs = append(funcs, Function{
Name: "urls",
Handler: func(v ...any) any { return urlsNamespace },
Methods: template.FuncMap{
"absURL": urlsNamespace.AbsURL,
"relURL": urlsNamespace.RelURL,
},
})