responsive-image.html 1.1 KB

1234567891011121314151617181920212223242526272829
  1. {{ $image := .image }}
  2. {{ $alt := .alt }}
  3. {{ $class := .class | default "responsive-image" }}
  4. {{ $maxWidth := .maxWidth | default "800" }}
  5. {{ with $image }}
  6. {{ $small := .Resize (printf "480x jpg q85") }}
  7. {{ $medium := .Resize (printf "800x jpg q90") }}
  8. {{ $large := .Resize (printf "%sx jpg q95" $maxWidth) }}
  9. <picture style="display: block; text-align: center; margin: 2rem auto;">
  10. <source media="(max-width: 480px)" srcset="{{ $small.RelPermalink }}">
  11. <source media="(max-width: 800px)" srcset="{{ $medium.RelPermalink }}">
  12. <source media="(min-width: 801px)" srcset="{{ $large.RelPermalink }}">
  13. <img
  14. src="{{ $large.RelPermalink }}"
  15. alt="{{ $alt }}"
  16. width="{{ $large.Width }}"
  17. height="{{ $large.Height }}"
  18. style="max-width: 100%; height: auto; margin: 0 auto; display: block;"
  19. class="{{ $class }}"
  20. loading="lazy"
  21. >
  22. </picture>
  23. {{ else }}
  24. <div style="text-align: center; color: red; padding: 1rem; border: 1px solid #ccc;">
  25. Image not found: {{ .path | default "unknown path" }}
  26. </div>
  27. {{ end }}