templateProvider.go (1280B)
1 // Copyright 2017-present The Hugo Authors. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 // http://www.apache.org/licenses/LICENSE-2.0
7 //
8 // Unless required by applicable law or agreed to in writing, software
9 // distributed under the License is distributed on an "AS IS" BASIS,
10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 // See the License for the specific language governing permissions and
12 // limitations under the License.
13
14 package tplimpl
15
16 import (
17 "github.com/gohugoio/hugo/deps"
18 )
19
20 // TemplateProvider manages templates.
21 type TemplateProvider struct{}
22
23 // DefaultTemplateProvider is a globally available TemplateProvider.
24 var DefaultTemplateProvider *TemplateProvider
25
26 // Update updates the Hugo Template System in the provided Deps
27 // with all the additional features, templates & functions.
28 func (*TemplateProvider) Update(d *deps.Deps) error {
29 tmpl, err := newTemplateExec(d)
30 if err != nil {
31 return err
32 }
33 return tmpl.postTransform()
34 }
35
36 // Clone clones.
37 func (*TemplateProvider) Clone(d *deps.Deps) error {
38 t := d.Tmpl().(*templateExec)
39 d.SetTmpl(t.Clone(d))
40 return nil
41 }