Hugo v.0.55 以降のパーシャルテンプレートでは、テキストを出力する代わりに、値を return
できるようになっています。
例えば、次のパーシャルテンプレートは、引数で受け取った値に 100 を足した値を返します。
{{ $ret := add 100 . }}
{{ return $ret }}
呼び出し側のテンプレートは次のように使用します。
{{ $ret := partial "functions/my-add" 50 }}
計算結果: {{ $ret }}
実行結果は次のようになります。
計算結果: 150
パーシャルテンプレートの return
では様々な型のオブジェクトを返すことができます。
例えば次の例では、slice
により作成したリストを返し、呼び出し側でループ処理しています。
{{ $ret := slice "Blue" "Red" "Yellow" }}
{{ $ret = $ret | append "Black" "White" }}
{{ return $ret }}
<ul>
{{- range partial "functions/get-colors" . }}
<li>{{ . }}
{{- end }}
</ul>
<ul>
<li>Blue
<li>Red
<li>Yellow
<li>Black
<li>White
</ul>