fix #217
Showing
1 changed file
with
21 additions
and
6 deletions
| ... | @@ -160,6 +160,19 @@ func getTemplate(root, file string, others ...string) (t *template.Template, err | ... | @@ -160,6 +160,19 @@ func getTemplate(root, file string, others ...string) (t *template.Template, err |
| 160 | t = template.New(file).Delims(TemplateLeft, TemplateRight).Funcs(beegoTplFuncMap) | 160 | t = template.New(file).Delims(TemplateLeft, TemplateRight).Funcs(beegoTplFuncMap) |
| 161 | var submods [][]string | 161 | var submods [][]string |
| 162 | t, submods, err = getTplDeep(root, file, t) | 162 | t, submods, err = getTplDeep(root, file, t) |
| 163 | if err != nil { | ||
| 164 | return nil, err | ||
| 165 | } | ||
| 166 | t, err = _getTemplate(t, root, submods, others...) | ||
| 167 | |||
| 168 | if err != nil { | ||
| 169 | return nil, err | ||
| 170 | } | ||
| 171 | return | ||
| 172 | } | ||
| 173 | |||
| 174 | func _getTemplate(t0 *template.Template, root string, submods [][]string, others ...string) (t *template.Template, err error) { | ||
| 175 | t = t0 | ||
| 163 | for _, m := range submods { | 176 | for _, m := range submods { |
| 164 | if len(m) == 2 { | 177 | if len(m) == 2 { |
| 165 | templ := t.Lookup(m[1]) | 178 | templ := t.Lookup(m[1]) |
| ... | @@ -169,9 +182,12 @@ func getTemplate(root, file string, others ...string) (t *template.Template, err | ... | @@ -169,9 +182,12 @@ func getTemplate(root, file string, others ...string) (t *template.Template, err |
| 169 | //first check filename | 182 | //first check filename |
| 170 | for _, otherfile := range others { | 183 | for _, otherfile := range others { |
| 171 | if otherfile == m[1] { | 184 | if otherfile == m[1] { |
| 172 | t, _, err = getTplDeep(root, otherfile, t) | 185 | var submods1 [][]string |
| 186 | t, submods1, err = getTplDeep(root, otherfile, t) | ||
| 173 | if err != nil { | 187 | if err != nil { |
| 174 | Trace("template parse file err:", err) | 188 | Trace("template parse file err:", err) |
| 189 | } else if submods1 != nil && len(submods1) > 0 { | ||
| 190 | t, err = _getTemplate(t, root, submods1, others...) | ||
| 175 | } | 191 | } |
| 176 | break | 192 | break |
| 177 | } | 193 | } |
| ... | @@ -187,9 +203,12 @@ func getTemplate(root, file string, others ...string) (t *template.Template, err | ... | @@ -187,9 +203,12 @@ func getTemplate(root, file string, others ...string) (t *template.Template, err |
| 187 | allsub := reg.FindAllStringSubmatch(string(data), -1) | 203 | allsub := reg.FindAllStringSubmatch(string(data), -1) |
| 188 | for _, sub := range allsub { | 204 | for _, sub := range allsub { |
| 189 | if len(sub) == 2 && sub[1] == m[1] { | 205 | if len(sub) == 2 && sub[1] == m[1] { |
| 190 | t, _, err = getTplDeep(root, otherfile, t) | 206 | var submods1 [][]string |
| 207 | t, submods1, err = getTplDeep(root, otherfile, t) | ||
| 191 | if err != nil { | 208 | if err != nil { |
| 192 | Trace("template parse file err:", err) | 209 | Trace("template parse file err:", err) |
| 210 | } else if submods1 != nil && len(submods1) > 0 { | ||
| 211 | t, err = _getTemplate(t, root, submods1, others...) | ||
| 193 | } | 212 | } |
| 194 | break | 213 | break |
| 195 | } | 214 | } |
| ... | @@ -198,9 +217,5 @@ func getTemplate(root, file string, others ...string) (t *template.Template, err | ... | @@ -198,9 +217,5 @@ func getTemplate(root, file string, others ...string) (t *template.Template, err |
| 198 | } | 217 | } |
| 199 | 218 | ||
| 200 | } | 219 | } |
| 201 | |||
| 202 | if err != nil { | ||
| 203 | return nil, err | ||
| 204 | } | ||
| 205 | return | 220 | return |
| 206 | } | 221 | } | ... | ... |
-
Please register or sign in to post a comment