diff --git a/view/html.go b/view/html.go index 24bb20ea..2d927ae1 100644 --- a/view/html.go +++ b/view/html.go @@ -44,6 +44,9 @@ var emptyFuncs = template.FuncMap{ "yield": func() (string, error) { return "", fmt.Errorf("yield was called, yet no layout defined") }, + "part": func() (string, error) { + return "", fmt.Errorf("block was called, yet no layout defined") + }, "partial": func() (string, error) { return "", fmt.Errorf("block was called, yet no layout defined") }, @@ -389,6 +392,15 @@ func (s *HTMLEngine) layoutFuncsFor(name string, binding interface{}) { // Return safe HTML here since we are rendering our own template. return template.HTML(buf.String()), err }, + "part": func(partName string) (template.HTML, error) { + nameTemp := strings.Replace(name, ".html", "", -1) + fullPartName := fmt.Sprintf("%s-%s", nameTemp, partName) + buf, err := s.executeTemplateBuf(fullPartName, binding) + if err != nil { + return "", nil + } + return template.HTML(buf.String()), err + }, "current": func() (string, error) { return name, nil },