Bonjour,
Je vois mieux. Quand tu mets du code html à l'intérieur d'une balise <code> dans une page (sans prism), ça reste du html qui sera interprété par le navigateur comme étant du html. Par exemple, essaie de mettre le code suivant dans une page :
<pre><code><button>Argh</button></code></pre>
Tu devrais voir apparaitre dans la page un bouton avec "Argh" écrit dessus, et non pas la chaine de caractère <button>Argh</button>. C'est le fonctionnement de base de la balise code. Elle n'empêche pas l'interprétation du html se trouvant dans son contenu.
Il est donc (plus ou moins) nécessaire d'utiliser au moins des "<" à la place des "<" pour que ce qui est à l'intérieur d'une balise <code> soit considéré comme du texte qui ne doit pas être interprété par le navigateur comme étant du html. Personnellement, quand je mets du code html (qui ne doit pas être interprété comme étant du html, que ce soit dans une balise <code> ou ailleurs), je remplace tous les "<" et ">" par des "<" et ">" pour éviter toute embrouille.
Note au passage que la balise code ne doit contenir que du "phrasing content", c'est à dire du texte et un certain nombre de balise comme <a>, <span>, etc. La balise <p> n'est pas dans la liste des balises permises. Voir
https://html.spec.whatwg.org/multipage/dom.html#phrasing-content (on ne peut pas mettre <p> dans une balise <code>, mais on peut y mettre <p> bien sûr).
Bref ton problème n'a rien à voir avec Prism, mais avec ta compréhension du fonctionnement de la balise <code>.
EDIT : je viens de faire une recherche rapide sur le net pour trouver où ça serait expliqué clairement. Il faut vraiment lire entre les lignes pour avoir la réponse.
Amicalement,
Modifié par parsimonhi (10 Mar 2024 - 13:44)