|
Here’s a snippet of Hugo template language that I use to try and select the best
social meta data image for each page on a static site:
{{ if isset .Params "meta_image" }}
<meta property="og:image" content="{{ .Params.meta_image | absURL }}"/>
<meta name="twitter:image" content="{{ .Params.meta_image | absURL }}">
<link rel="image_src" href="{{ .Params.meta_image | absURL }}"/>
<meta itemprop="image" content="{{ .Params.meta_image | absURL }}">
{{ else if (.Resources.ByType "image") | len }}
{{ $firstImage := index (.Resources.ByType "image") 0 }}
<meta property="og:image" content="{{ $firstImage.Permalink }}"/>
<meta name="twitter:image" content="{{ $firstImage.Permalink }}">
<link rel="image_src" href="{{ $firstImage.Permalink }}"/>
<meta itemprop="image" content="{{ $firstImage.Permalink }}">
{{ else }}
<meta property="og:image" content="{{"/img/default-image.png" | absURL }}"/>
<meta name="twitter:image" content="{{"/img/default-image.png" | absURL }}">
<link rel="image_src" href="{{"/img/default-image.png" | absURL }}"/>
<meta itemprop="image" content="{{"/img/default-image.png" | absURL }}">
{{ end }}
First it tries using a meta_image key in the page’s frontmatter, then the
first image resource if one is available, and finally falls back to a default
global meta image if neither of those are present.
I use this on various static Hugo sites, including Moment Wall
Art, Kensio
Software and the static section of Chinese
Boost.
View post:
Selecting the best available social meta data image in Hugo
|
|
|
|