{# Identifiant du build : comparé à /version.json par version-check.js pour recharger les onglets restés ouverts pendant une mise en production. #} {# Canonical unique et dynamique : chaque page pointe vers sa propre URL, jamais vers l'accueil. Le bloc permet aux pages qui présentent un même contenu sous plusieurs adresses (page d'écoute partagée, avec ou sans bornes d'extrait) de désigner l'URL de référence. #} {# Point d'extension : c'est ce qui permet à une page de conférence de déclarer son fichier audio (og:audio), condition pour que WhatsApp, Telegram ou Facebook affichent un aperçu riche plutôt qu'une ligne d'URL brute. #} {% block open_graph_extra %}{% endblock %} {# Flux RSS : c'est par ce lien que les applications de podcast (Apple Podcasts, Podcast Addict, Overcast…) découvrent le catalogue. #} {# 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') }} {# Le lecteur audio est chargé en fin de (public/js/podcast-player.js) : il n'a besoin ni de React ni du build Vite. On préconnecte simplement le fichier ici pour qu'il soit disponible dès le premier rendu. #} {% 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' %} {# Racine du lecteur audio : marquée data-turbo-permanent pour que Turbo ne la détruise jamais entre deux pages — c'est ce qui permet à la lecture de continuer pendant la navigation. Reste vide tant qu'aucune conférence n'a été lancée (podcast-player.js n'y injecte rien). #}
{# Lecteur audio : script classique (pas de type=module, pas de data-turbo-track) pour que Turbo ne le réexécute jamais — l'état de lecture survit ainsi à toute la navigation. #} {# Détection des mises à jour : recharge l'onglet (en vidant les caches HTTP, les service workers et le cache de pages Turbo) quand une nouvelle version est déployée — jamais pendant une écoute en cours. #} {# Scripts spécifiques à une page #} {% block extra_scripts %}{% endblock %}