diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2019-04-02 10:30:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-02 10:30:24 +0200 |
commit | a55640de8e3944d3b9f64b15155148a0e35cb31e (patch) | |
tree | 3fe07277c5f7f675571c15851ce9fdc96a2bcecd /hugolib/template_test.go | |
parent | 9225db636e2f9b75f992013a25c0b149d6bd8b0d (diff) | |
download | hugo-a55640de8e3944d3b9f64b15155148a0e35cb31e.tar.gz hugo-a55640de8e3944d3b9f64b15155148a0e35cb31e.zip |
tpl: Allow the partial template func to return any type
This commit adds support for return values in partials.
This means that you can now do this and similar:
{{ $v := add . 42 }}
{{ return $v }}
Partials without a `return` statement will be rendered as before.
This works for both `partial` and `partialCached`.
Fixes #5783
Diffstat (limited to 'hugolib/template_test.go')
-rw-r--r-- | hugolib/template_test.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/hugolib/template_test.go b/hugolib/template_test.go index 56f5dd5ba..3ec81323b 100644 --- a/hugolib/template_test.go +++ b/hugolib/template_test.go @@ -264,3 +264,44 @@ Hugo: {{ hugo.Generator }} ) } + +func TestPartialWithReturn(t *testing.T) { + + b := newTestSitesBuilder(t).WithSimpleConfigFile() + + b.WithTemplatesAdded( + "index.html", ` +Test Partials With Return Values: + +add42: 50: {{ partial "add42.tpl" 8 }} +dollarContext: 60: {{ partial "dollarContext.tpl" 18 }} +adder: 70: {{ partial "dict.tpl" (dict "adder" 28) }} +complex: 80: {{ partial "complex.tpl" 38 }} +`, + "partials/add42.tpl", ` + {{ $v := add . 42 }} + {{ return $v }} + `, + "partials/dollarContext.tpl", ` +{{ $v := add $ 42 }} +{{ return $v }} +`, + "partials/dict.tpl", ` +{{ $v := add $.adder 42 }} +{{ return $v }} +`, + "partials/complex.tpl", ` +{{ return add . 42 }} +`, + ) + + b.CreateSites().Build(BuildCfg{}) + + b.AssertFileContent("public/index.html", + "add42: 50: 50", + "dollarContext: 60: 60", + "adder: 70: 70", + "complex: 80: 80", + ) + +} |