blog/templates/macros/image.html
2023-04-21 01:50:27 -07:00

39 lines
1.4 KiB
HTML

{%- import "macros/colocated_asset.html" as colocated_asset -%}
{%- macro image(name, alt, colocated, height, process) -%}
{%- set name_sanitized = name | replace(from=".", to="-") | replace(from="/", to="-") -%}
{%- set image_id = "image" ~ name_sanitized -%}
{%- if colocated == true -%}
{%- set image_path = colocated_asset::colocated_asset(path=name) -%}
{%- set image_url = colocated_asset::colocated_asset(path=name, get_url=true) -%}
{%- else -%}
{%- set image_path = "/static/images/" ~ name -%}
{%- set image_url = get_url(path=image_path) -%}
{%- endif -%}
{%- if process -%}
{%- set image = resize_image(path=image_path, width=800, height=height, op="fit") -%}
{# because tera doesn't have object literals we need to deconstruct the object here so the other case is compatible #}
{%- set processed_image_url = image.url -%}
{%- else -%}
{%- set image = colocated_asset::colocated_asset(path=image_path, get_url=true) | trim -%}
{%- set processed_image_url = image_url -%}
{%- endif -%}
<div class="image">
<a href="{{ image_url }}">
<img src="{{ processed_image_url }}"
alt="{{ alt }}"
title="{{ alt }}"
{% if label %}
aria-describedby="{{ image_id }}"
{% endif %}
>
</a>
{% if label %}
<span class="image-label" id="{{ image_id }}">
{{ label }}
</span>
{% endif %}
</div>
{%- endmacro image -%}