{# Composants Tera appelés depuis le markdown (Zola 0.23 a supprimé les shortcodes : le contenu des pages est templaté directement). Les captures suivent la langue : chaque appel passe celle de la page, `lang={lang}`, parce qu'un composant ne voit pas le contexte de l'appelant. Chaque image existe en JPEG XL (proposé d'abord) et en PNG (repli). Une langue sans dossier dans static/img/ retombe sur « en » : le portugais emprunte donc les captures anglaises tant que shots.mjs n'a pas fait sa passe. Le repli est écrit en dur parce qu'un composant ne voit pas `config` non plus, seulement ses propres paramètres. #} {# Capture pleine page, format téléphone. {{}} #} {% component shot(name: string, alt: string, lang: string, legende: string = "") %} {% if not get_image_metadata(path="static/img/" ~ lang ~ "/" ~ name ~ ".png", allow_missing=true) %}{% set lang = "en" %}{% endif %} {% set meta = get_image_metadata(path="static/img/" ~ lang ~ "/" ~ name ~ ".png", allow_missing=true) %}
{{ alt }} {% if legende %}
{{ legende }}
{% endif %}
{% endcomponent shot %} {# Extrait recadré, posé dans le fil du texte. {{}} #} {% component extrait(name: string, alt: string, lang: string, legende: string = "") %} {% if not get_image_metadata(path="static/img/" ~ lang ~ "/" ~ name ~ ".png", allow_missing=true) %}{% set lang = "en" %}{% endif %} {% set meta = get_image_metadata(path="static/img/" ~ lang ~ "/" ~ name ~ ".png", allow_missing=true) %}
{{ alt }} {% if legende %}
{{ legende }}
{% endif %}
{% endcomponent extrait %} {# Deux captures côte à côte (deux étapes, avant et après). {{}} #} {% component duo(a: string, b: string, alt_a: string, alt_b: string, lang: string, legende: string = "") %} {% if not get_image_metadata(path="static/img/" ~ lang ~ "/" ~ a ~ ".png", allow_missing=true) %}{% set lang = "en" %}{% endif %} {% set ma = get_image_metadata(path="static/img/" ~ lang ~ "/" ~ a ~ ".png", allow_missing=true) %} {% set mb = get_image_metadata(path="static/img/" ~ lang ~ "/" ~ b ~ ".png", allow_missing=true) %}
{{ alt_a }} {{ alt_b }}
{% if legende %}
{{ legende }}
{% endif %}
{% endcomponent duo %} {# Encadré d'aparté (règle, piège, rappel). {% %} … {% %} #} {% component apart(titre: string) %} {% endcomponent apart %}