mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-14 20:37:55 -05:00
Throw error if resources.PostProcess is used in a deferred template
That just doesn't work. See #12655
This commit is contained in:
parent
7be0377505
commit
f0ed91caba
2 changed files with 27 additions and 1 deletions
|
@ -200,3 +200,23 @@ func TestDeferFromContentAdapterShouldFail(t *testing.T) {
|
|||
b.Assert(err, qt.Not(qt.IsNil))
|
||||
b.Assert(err.Error(), qt.Contains, "error calling Defer: this method cannot be called before the site is fully initialized")
|
||||
}
|
||||
|
||||
func TestDeferPostProcessShouldThrowAnError(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
files := `
|
||||
-- hugo.toml --
|
||||
-- assets/mytext.txt --
|
||||
ABCD.
|
||||
-- layouts/index.html --
|
||||
Home
|
||||
{{ with (templates.Defer (dict "key" "foo")) }}
|
||||
{{ $mytext := resources.Get "mytext.txt" | minify | resources.PostProcess }}
|
||||
{{ end }}
|
||||
|
||||
`
|
||||
b, err := hugolib.TestE(t, files)
|
||||
|
||||
b.Assert(err, qt.Not(qt.IsNil))
|
||||
b.Assert(err.Error(), qt.Contains, "resources.PostProcess cannot be used in a deferred template")
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ package tplimpl
|
|||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/gohugoio/hugo/helpers"
|
||||
htmltemplate "github.com/gohugoio/hugo/tpl/internal/go_templates/htmltemplate"
|
||||
|
@ -248,7 +249,12 @@ func (c *templateContext) handleDefer(withNode *parse.WithNode) {
|
|||
n := l.Nodes[0].(*parse.ActionNode)
|
||||
|
||||
inner := withNode.List.CopyList()
|
||||
innerHash := helpers.MD5String(inner.String())
|
||||
s := inner.String()
|
||||
if strings.Contains(s, "resources.PostProcess") {
|
||||
c.err = errors.New("resources.PostProcess cannot be used in a deferred template")
|
||||
return
|
||||
}
|
||||
innerHash := helpers.MD5String(s)
|
||||
deferredID := tpl.HugoDeferredTemplatePrefix + innerHash
|
||||
|
||||
c.deferNodes[deferredID] = inner
|
||||
|
|
Loading…
Reference in a new issue