MCPcopy Create free account
hub / github.com/abiosoft/mold / parseView

Function parseView

engine.go:206–241  ·  view source on GitHub ↗
(set templateSet, layout *templateFile, name string)

Source from the content-addressed store, hash-verified

204}
205
206func parseView(set templateSet, layout *templateFile, name string) (*template.Template, error) {
207 view := template.Must(layout.Clone()) // safe
208
209 body := set[name]
210 body.typ = viewType
211
212 // process template tree for body
213 refs, err := processTree(body)
214 if err != nil {
215 return nil, fmt.Errorf("error parsing view '%s': %w", name, err)
216 }
217 for _, ref := range refs {
218 t := set[ref.name]
219 if t == nil {
220 return nil, fmt.Errorf("error parsing template '%s': %w", ref.name, ErrNotFound)
221 }
222
223 t.typ = partialType
224 if err := parsePartial(t); err != nil {
225 return nil, fmt.Errorf("error parsing partial: '%s': %w", ref.name, err)
226 }
227
228 view.AddParseTree(ref.name, t.Tree)
229 }
230
231 // add defined templates to the layout
232 for _, t := range body.Templates() {
233 tName := t.Name()
234 if tName == name {
235 tName = "body"
236 }
237 view.AddParseTree(tName, t.Tree)
238 }
239
240 return view, nil
241}
242
243func parsePartial(partial *templateFile) error {
244 _, err := processTree(partial)

Callers 1

newEngineFunction · 0.85

Calls 2

processTreeFunction · 0.85
parsePartialFunction · 0.85

Tested by

no test coverage detected