Jusqu’à très récemment, il m’était tout à fait possible d’avoir des caractères accentués dans des blocs de texte sous WordPress en utilisant le plugin Crayon Syntax Highlighter pour coloriser le code.
Or depuis quelques temps tous les blocs en lang="text"
ne permettent plus d’afficher les accents : je me retrouve avec des mots tronqués comme si le texte n’était pas encodé en UTF-8.
Problème : des caractères non-Unicode
Voici ce que donne la phrase “j’ai mangé une tarte à la crème à Noël” avec une colorisation par défaut avec Crayon Syntax Highlighter :
J'ai mangé une tarte à la crème à Noël.
Gloups! C’est totalement illisible, les accents deviennent un caractère mal encodé et certaines lettres adjacentes sont littéralement supprimées. Pas glop.
Solution : créer un alias
La solution que je propose est plus une rustine d’appoint qu’une véritable solution.
Je pense que le problème réside dans l’expression régulière des langages du plugin : certains langages (shell par exemple) n’acceptent pas les accents alors que d’autres (HTML par exemple) oui.
Je me suis rendu compte en changeant la langue du bloc que le langage batch
affichait correctement les accents.
Comme je n’allais pas éditer tous mes articles pour changer le langage des blocs texte que j’ai utilisé jusqu’à maintenant, j’ai opté pour la création d’un alias.
1. On édite le fichier crayon-syntax-highlighter/langs/aliases.txt
:
nano crayon-syntax-highlighter/langs/aliases.txt
2. On ajouter la ligne suivante à la fin du fichier:
batch text
Cela crée un alias text
qui va suivre les modalités de colorisation du code batch
. Il faut mettre en premier le langage existant et à la suite les alias que l’on souhaite créer.
Conclusion
L’effet est immédiat, les accents reviennent immédiatement :
J'ai mangé une tarte à la crème à Noël.
C’est une rustine mais l’essentiel était pour moi de retrouver une certaine lisibilité dans mes articles techniques!
Vous avez un projet WordPress ou WooCommerce en tête? Transformez votre vision en réalité avec mon expertise reconnue.