目次
概要
ここでは、説明用として、image.html
というpartial
を作成しています。
image.html
には、以下の3つのパラメータを渡す予定です。
パラメータ | 説明 |
---|---|
src | イメージファイルのsrc属性 |
align | イメージファイルのalign属性 (left, center, rightのどれか) |
size | 画像のサイズ (1~10で指定) |
利用側
{{ partial "parts/image.html" (dict "src" .src "align" .align "size" .size) }}
partial
の引数として、dict
を指定します。dict
のキー、バリューとしてパラメータを設定していきます。
partialの定義
ファイルの配置
. └── layouts/ └── partials/ └── parts/ └── image.html
image.html
{{- /* .src = 画像のパス [必須] .align = left|center|right [省略時はcenter] .size = 1-10 (100px~1000px) [省略時は元画像のサイズ] */ -}} {{- /* パラメータ受け取り */ -}} {- $src := .src -}} {{- $align := default "center" .align -}} {{- $size := "" -}} {{- with .size -}} {{- $size = (cond (eq (printf "%T" .) "int") (printf "%d" .) .) -}} {{- end -}} {{- /* partialの本処理 */ -}} {{- if eq $size "" -}} {{- printf "<p class=\"%s\"><img src=\"%s\"></p>" $align $src | safeHTML -}} {{- else -}} {{- printf "<p class=\"%s size-%s\"><img src=\"%s\"></p>" $align $size $src | safeHTML -}} {{- end -}}
partial
内では、利用側で指定したdict
がコンテキスト(.
)として受け取れます。(赤字部分)- なので、例えば
src
にアクセスするには.src
とすればOKです。
- なので、例えば
なお、ここで、CSSのクラスは別途定義していますが、本筋から逸れるため説明は割愛します。