Hugoのpartialテンプレートに、コンテキスト(.
)以外にも、追加の情報を渡したい。
解決策
dict
で作成したマップを引数で渡す。
{{ partial "icon" (dict "Name" "bell" "ClassName" "text-2xl") }}
もし、partialテンプレートで、コンテキスト.
または、マップを引数として取得したい場合は、
テンプレート側でreflect.IsMap
により、引数の方をチェックして、処理を分岐させる。
/* layouts/partials/icon.html */
{{- $icon_name := "" -}}
{{- $class_name := "text-xl" -}}
{{- if reflect.IsMap . -}}
{{- $icon_name = .Name -}}
{{- $class_name = .ClassName -}}
{{- else -}}
{{- $icon_name = . -}}
{{- end -}}
/* ...略... */
この場合は、以下の呼び出し方も可能となる。
{{ partial "icon" "bell" }}