Affichage de balises sans qu'elles soient traduites

Comme ça fait deux semaines que j'ai rien posté...

J'ai souvent constaté en recherchant des plugins pour WordPress ou en lisant des discussions sur des forums que pour afficher des balises "en clair" sans qu'elles soient traduites, les gens ajoutaient dedans une étoile ou un point. C'est une ruse qui fonctionne, certes, mais ça nuit à la lisibilité et en cas de copié/collé, il faut retoucher le code, c'est pas pratique.

Première solution

Une autre solution que j'ai longtemps utilisée consiste à intercaler une autre balise dedans qui empêchera le parser de reconnaitre la balise que l'on veut afficher.

Par exemple, pour afficher les balises bbcodes

[b]bla[/b]

sur un forum, on peut mettre

[b[b][/b]]bla[[b][/b]/b]

Cependant cela produit un code non-valide XHTML, puisqu'on se retrouve avec une balise HTML vide, ce n'est donc pas très élégant.

Seconde solution

Une autre façon de faire, est d'utiliser les entités HTML pour remplacer les crochets, chevrons ou accolades qu'on veut ne pas voir interprétées. Pour afficher

[b]bla[/b]

on écrira donc

[b]bla[/b]

Les différentes entités sont facilement trouvables sur le net, notamment ici.

Les plus intéressantes étant :

[ -> [
] -> ]
&#60; ou &lt; -> <
&#62; ou &gt; -> >

L'inconvénient c'est que suivant les scripts, les entités sont automatiquement remplacées par les caractères qu'elles représentent et dans ce cas, ben... ça sert à rien \o/

En tout cas sur WordPress, ça marche et ça me semble plus élégant que les deux autres solutions.

Soumettre un commentaire

La soumission de commentaire fonctionne via un envoi de mail à une adresse dédiée, pour plus de précisions sur les raisons de ce fonctionnement atypique vous pouvez consulter cet article.

0 commentaires