How to display images in Hugo with examples | Hugo Image shortcode

There are multiple ways we can insert images in Hugo’s posts.

Hugo’s posts are indifferent.

Hugo posts are written in markdown files. These are plain text content with special syntax. Adding an image to markdown files in Hugo

Here is a syntax for adding images to posts in Hugo

![your image](/post/images/your-image.png)
  • Using Figure shortcode

the figure is an inbuilt shortcode provided by Hugo’s static generator


{{< figure src="/abc.jpg" title="abc"title="title" alt="alt text string" width="auto" >}}
  • using custom shortcut if we want full control over how we want to display. We can write a shortcode for image displays.

Here is an shortcode html file image.html in layout/shortcodes folder It contains img tag and set src,alt width attributes

<!-- Get src param from shortcode -->
{{ $src := $.Get "src"}} {{ $image := .Page.Resources.GetMatch (.Get "src") }}
{{ $file := path.Join (path.Dir .Page.File.Path) $image }} {{ $stat := os.Stat
$file }}

<!-- Get alt param from shortcode -->
{{ $alt := $.Get "alt"}} {{- /* This shortcode create img tag with lazy loading
Params: - "src" : relative path of image in directory "static/images/" */ -}}
{{- with .Get "src" }} {{- $src := . }} {{ with (imageConfig (printf "images/%s"
. )) }} <img class="img-fluid" src="{{ printf " /images/%s" $src | absURL }}"
alt="{{ $alt }}" width="{{.Width}}" height="{{.Height}}" loading="lazy"
decoding="async"> {{ end }} {{- else }} {{- errorf "missing value for param
'name': %s" .Position }} {{- end }}

Here is an example

{{< image  src="primeng-2.png" title="Primeng Angular Tutorials with examples" alt="Primeng Angular Tutorials with examples" width="auto" >}}