bed0fe22 by smithfox

fix #217

1 parent 02c2e162
...@@ -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 }
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!