{# Canonical unique et dynamique : chaque page pointe vers sa propre URL, jamais vers l'accueil. #} {# SCHÉMA.ORG (défaut ; les pages peuvent le remplacer via leur propre bloc structured_data) #} {% block structured_data %} {% endblock %} {{ vite_entry_link_tags('app') }} {{ vite_entry_script_tags('app',{'dependency':'react'}) }} {# Lecteur global : chargé sur TOUTES les pages, persiste via data-turbo-permanent #} {{ vite_entry_script_tags('player',{'dependency':'react'}) }} {% include 'partials/navbar.html.twig' %}
{% for label, messages in app.flashes %} {% for message in messages %}
{{ message }}
{% endfor %} {% endfor %}
{% block body %}{% endblock %}
{% include 'partials/footer.html.twig' %} {# Lecteur React (MUI) — persistant à travers toutes les navigations Turbo. Le style visuel (fond, bordure) est géré par le composant MUI (Paper), ce wrapper ne fait que fixer la position à l'écran. Reste vide/invisible tant qu'aucune conférence n'a été lancée. #}
{# Bundles React spécifiques à une page (ex : panneau lecteur de l'accueil) #} {% block extra_scripts %}{% endblock %}