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

Function newEngine

engine.go:27–59  ·  view source on GitHub ↗
(fsys fs.FS, options ...Option)

Source from the content-addressed store, hash-verified

25)
26
27func newEngine(fsys fs.FS, options ...Option) (Engine, error) {
28 c := Config{
29 fs: fsys,
30 }
31 if err := setup(&c, options...); err != nil {
32 return nil, fmt.Errorf("error creating new engine: %w", err)
33 }
34
35 m := moldEngine{}
36
37 // traverse to fetch all templates
38 set, err := walk(c.fs, c.exts.val, c.funcMap.val)
39 if err != nil {
40 return nil, fmt.Errorf("error creating new engine: %w", err)
41 }
42
43 // process layout
44 layout, err := parseLayout(set, c.layoutRaw, c.funcMap.val)
45 if err != nil {
46 return nil, fmt.Errorf("error parsing layout: %w", err)
47 }
48
49 // process views
50 for name := range set {
51 view, err := parseView(set, layout, name)
52 if err != nil {
53 return nil, err
54 }
55 m[name] = view
56 }
57
58 return m, nil
59}
60
61// Render implements Layout.
62func (m moldEngine) Render(w io.Writer, view string, data any) error {

Callers 1

NewFunction · 0.85

Calls 4

setupFunction · 0.85
walkFunction · 0.85
parseLayoutFunction · 0.85
parseViewFunction · 0.85

Tested by

no test coverage detected