Wagtail Picture Tag adds a picture template tag. This is not supposed to be a solution for all situations but to be a shortcut for most.
It accepts 3 main types of filters: formats, resizing methods and sizes.
By default it will try and create JPEG, PNG, WEBP and AVIF (if available).
You may use format-jpeg, format-png, format-webp, format-gif and format-avif
There are also two format shortcuts:
- photo - will create JPEG, WEBP and AVIF
- transparent - will create WEBP, PNG and AVIF
Resizing methods are the same as Wagtails with the exception that you can provide multiple filters
Sizes are automatically generated to match resizing filters provided but can be specified for more responsive sizes.
size-250px will create sizes="250px" size-max100-300vw size-250px will create sizes="(max-width: 300px) 100vw, 250px"
It also takes the argument lazy that simply adds loading="lazy" to the HTML tag.
Currently Willow (the image library used by Wagtail) does not support AVIF but support can be patched in by installing willowavif package.
Install the package:
pip install wagtail-picture-tag
Add "wagtail-picture-tag" to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [ ... 'wagtail_picture_tag', ]
Include the tag in your template:
{% load picture_tags %}
Use the tag:
{% picture image photo fill-640x480 fill-320x240 %}
All that is needed is to install the willowavif package, it is then automatically imported and used.
Testing is done with pytest. Install and test can be done with:
pip install -r requirements.txt -r requirements.dev.txt
pytest