タイトルのような事をしたいです。これをtemplateの計算でやるにはどのようにすればいいでしょうか。
=演算子があればif節の中で変数に代入できますが=演算子がないのでどうすれば良いのかわかりません。

{{ define "tiledView" }}
{{ $length := len . }}
/* 当分する単位を計算 */
{{ $divide := div $length 3}}
/* 余りを計算 */
{{ $m := mod $length 3 }}
{{ $end1 := add $divide 1 }}
{{ $m := sub $m 1 }}
{{ $end2 := add $end1 $divide }}
{{ $m := sub $m 1 }}
{{ $end3 := add $end2 $divide }}
<div class="row">
    <div class="col s12 m4">
        {{ range (slice . 0 $end1) }}
        {{ template "moviebox" . }}
        {{ end }}
    </div>
    <div class="col s12 m4">
        {{ range (slice . $end1 $end2) }}
        {{ template "moviebox" . }}
        {{ end }}
    </div>
    <div class="col s12 m4">
        {{ range (slice . $end2 $end3) }}
        {{ template "moviebox" . }}
        {{ end }}
    </div>
</div>
{{ end }}

各template functionの機能は下記のとおりです。

  • add 第1引数に第2引数を足す
  • sub 第1引数から第2引数を引く
  • mod 余りを計算する
  • div 割り算する
  • slice スライスを指定の数でスライスしたものを返す。

余り$mが0になるまで$end~に1足していけば良いのですが、if節中で変数を定義できない(ローカルスコープのため)のでできません。

dataとしてコードから渡す事はできますが、コードがややこしくなるので、できればtemplateで処理したいのですが、方法はありますでしょうか。