package components import ( "bytes" "html/template" "github.com/GoAdminGroup/go-admin/modules/config" "github.com/GoAdminGroup/go-admin/modules/logger" "github.com/GoAdminGroup/go-admin/modules/utils" template2 "github.com/GoAdminGroup/go-admin/template" ) func ComposeHtml(temList map[string]string, separation bool, compo interface{}, templateName ...string) template.HTML { tmplName := "" if len(templateName) > 0 { tmplName = templateName[0] + " " } var ( tmpl *template.Template err error ) if separation { files := make([]string, 0) root := config.GetAssetRootPath() + "pages/" for _, v := range templateName { files = append(files, root+temList["components/"+v]+".tmpl") } tmpl, err = template.New("comp").Funcs(template2.DefaultFuncMap).ParseFiles(files...) } else { var text = "" for _, v := range templateName { text += temList["components/"+v] } tmpl, err = template.New("comp").Funcs(template2.DefaultFuncMap).Parse(text) } if err != nil { logger.Panic(tmplName + "ComposeHtml Error:" + err.Error()) return "" } buf := new(bytes.Buffer) defineName := utils.ReplaceAll(templateName[0], "table/", "", "form/", "") err = tmpl.ExecuteTemplate(buf, defineName, compo) if err != nil { logger.Error(tmplName+" ComposeHtml Error:", err) } return template.HTML(buf.String()) }