{{ $original := .Page.Resources.GetMatch (printf "*%s*" (.Get 0)) }}
{{ $command := .Get 1 }}
{{ $options := .Get 2 }}
{{ $position := .Get 3 }}

{{ if eq $command "Fit" }}
  {{ .Scratch.Set "image" ($original.Fit $options) }}
  {{ else if eq $command "Resize" }}
  {{ .Scratch.Set "image" ($original.Resize $options) }}
  {{ else if eq $command "Fill" }}
  {{ .Scratch.Set "image" ($original.Fill $options) }}
  {{ else }}
  {{ errorf "Invalid image processing command: Must be one of Fit, Fill or Resize." }}
{{ end }}

{{ $image := .Scratch.Get "image" }}

<figure class="{{ with $position }}{{ . }}{{ else -}} left {{- end }}">
  <img
    style="max-width: 100%; width: auto; height: auto; border-radius: 8px;"
    src="{{ $image.RelPermalink }}"
    width="{{ $image.Width }}"
    height="{{ $image.Height }}"
  />
  {{ with .Inner }}
    <figcaption>
      {{ . }}
    </figcaption>
  {{ end }}
</figure>