package templates import ( "embed" "html/template" ) type Templates map[string]*template.Template // NewTemplates creates a new responder (embedded_dir should have a trailing slash) func NewTemplates(given_fs embed.FS, embedded_dir string, variadics ...string) Templates { // todo later: allow both io/fs.FS and embed.FS as called arguments templates := make(map[string]*template.Template) pages, _ := given_fs.ReadDir(embedded_dir) for _, page := range pages { file_path := embedded_dir + page.Name() files := []string{file_path} for _, v := range variadics { files = append(files, embedded_dir+v) // add prefix } // files = append(files, variadics...) tpl := template.Must( template.New(page.Name()).ParseFS(given_fs, files...)) //+".html")) templates[page.Name()] = tpl // fmt.Println(page.Name()) } return templates }