- Hugoのpartialは引数を1つしか取れないので、複数のパラメータを渡したいときは辞書型などに包む必要がある
- でも、渡すパラメータが1つのときにもわざわざ辞書型に包まなければならないのはちょっと面倒くさい
- なので、パラメータが1つのときは、それ自体を引数に渡すことができると嬉しい
- Hugoには変数が辞書型かどうかを判定する
reflect.IsMap関数があるので、辞書型でないときに辞書型で包み直すようにすることができる
- Hugoには変数が辞書型かどうかを判定する
たとえば、こんな感じ。
{{- /* italic.html */ -}}
{{- if reflect.IsMap . -}}
{{- /* 複数の引数を辞書型で受け取る */ -}}
</i{{with .Id}} id="{{.Id}}"{{end}}>.Text</i>
{{- else -}}
{{- /* 単体の引数を辞書型に包んで渡し直す */ -}}
{{- partial "italic.html" (dict "Text" .) -}}
{{- end -}}