HugoでGird配置で画像を表示する shortcodes
を実装しました。
先日サンプルで画像を並べたものです。
{{ $size := "200x" }}
{{ $mobileSize := "100x100"}}
<div class="img-view">
<table>
<tbody>
{{ range $idx, $elem := .Params }}
{{ $res := resources.GetMatch $elem }}
{{ $image := $res.Resize $size }}
{{ $mobileImage := $res.Fit $mobileSize}}
{{ $imageURL := $image.RelPermalink }}
{{ $mobileImageURL := $mobileImage.RelPermalink}}
{{ if modBool $idx 3 }}
<tr>
<th>
<a href="{{ $res.RelPermalink }}" target="_blank">
<div class="thumb-img">
<img class="pc" src="{{ $imageURL }}" alt="{{ $elem }}" width="{{ $image.Width }}" height="{{ $image.Height }}"/>
<img class="sp" src="{{ $mobileImageURL }}" alt="{{ $elem }}" width="{{ $mobileImage.Width }}" height="{{ $mobileImage.Height }}"/>
<p class="pc">クリックで拡大</p>
</div>
</a>
</th>
{{ else if modBool (add $idx 3) 3 }}
<th>
<a href="{{ $res.RelPermalink }}" target="_blank">
<div class="thumb-img">
<img class="pc" src="{{ $imageURL }}" alt="{{ $elem }}" width="{{ $image.Width }}" height="{{ $image.Height }}"/>
<img class="sp" src="{{ $mobileImageURL }}" alt="{{ $elem }}" width="{{ $mobileImage.Width }}" height="{{ $mobileImage.Height }}"/>
<p class="pc">クリックで拡大</p>
</div>
</a>
</th>
</tr>
{{ else }}
<th>
<a href="{{ $res.RelPermalink }}" target="_blank">
<div class="thumb-img">
<img class="pc" src="{{ $imageURL }}" alt="{{ $elem }}" width="{{ $image.Width }}" height="{{ $image.Height }}"/>
<img class="sp" src="{{ $mobileImageURL }}" alt="{{ $elem }}" width="{{ $mobileImage.Width }}" height="{{ $mobileImage.Height }}"/>
<p class="pc">クリックで拡大</p>
</div>
</a>
</th>
{{ end }}
{{ end }}
</tbody>
</table>
</div>
.thumb-img {
position: relative;
}
.thumb-img p {
position: absolute;
bottom: 0;
margin-bottom: 0;
right: 0;
display: none;
color: rgb(45, 45, 45);
background-color: rgba(173, 173, 173, 0.582);
font-size: large;
}
.thumb-img:hover > p {
display: block;
}
@media(min-width:751px){
.sp{
display: none !important;
}
}
@media(max-width:750px){
.pc{
display: none !important;
}
}
3列並べたら折り返す実装です。
pc、spで表示する画像サイズを変更するようにしてます。
使い方
次のように指定すると使えます。
{{< img-view
"画像1.jpg"
"画像2.jpg"
"画像3.jpg"
>}}
最後に
WebP対応もやっていきたいなぁ。