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
},