Wordpress emojis et Discourse

Bonjour,

J’ai les paramètres par défaut de WP (s’il y en a…) concernant les emojis.
Sur WP, j’ai écrit un texte contenant des emojis de caractères :

WordPress les convertit automatiquement en emojis Twitter au format SVG :

Voici le code HTML généré pour le premier emoji, à titre d’exemple :

<span class="pq6dq46d tbxw36s4 knj5qynh kvgmc6g5 ditlmg2l oygrvhab nvdbi5me sf5mxxl7 gl3lb2sf hhz5lgdu"><img draggable="false" role="img" class="emoji" alt="👊" src="https://s.w.org/images/core/emoji/13.0.0/svg/1f44a.svg"> </span>

Lorsque le message est envoyé sur Discourse, le HTML est légèrement modifié :

<span class="pq6dq46d tbxw36s4 knj5qynh kvgmc6g5 ditlmg2l oygrvhab nvdbi5me sf5mxxl7 gl3lb2sf hhz5lgdu">&#x1f44a; </span>

Car il insère l’entité HTML de l’emoji dans le span.

Le résultat est un message bien formaté, mais les emojis ne sont pas convertis vers le jeu d’emojis du forum :

Existe-t-il un moyen pour que les emojis s’affichent en utilisant le jeu d’emojis choisi par le forum ?

Cela peut être un problème lié à Discourse, plutôt qu’au plugin.

Si vous utilisez la gestion par défaut des emojis de WordPress, je suppose que vous copiez-collez des emojis Unicode dans l’éditeur WordPress. Si vous faites cela, le contenu brut du message envoyé à Discourse inclura simplement les emojis Unicode. Discourse devrait normalement les convertir dans le jeu d’emojis du forum. Je peux en effet reproduire le problème dans certaines circonstances.

Je reviendrai vers vous à ce sujet.

@Canapin Salut :slight_smile: Voici une mise à jour à ce sujet.

Le problème survient lorsque :

  1. Vous avez activé le paramètre « contenu complet de l’article » dans wp-discourse
  2. Vous avez créé un article dans WordPress contenant au moins une ligne de texte avant l’insertion des émojis.

Pour commencer, pourriez-vous simplement me confirmer que c’est bien ce que vous avez fait dans ce cas (en particulier le paramètre « contenu complet de l’article ») ?

Dans ces circonstances, le plugin wp-discourse envoie du HTML vers Discourse, qui est importé sous forme d’intégration de sujet. Plusieurs problèmes différents, dont celui-ci, peuvent survenir lorsque Discourse tente de traiter le HTML lors de la création d’un article. Par exemple, un autre problème qui se pose est Fix broken images for posts created by the WP Discourse and RSS plugins.

Sur le plan technique (je sais que vous êtes technique :wink: ), vous pouvez constater le problème directement en essayant d’utiliser la classe Ruby pertinente de Discourse pour analyser une chaîne HTML contenant des émojis Unicode.

Détails techniques du problème
rails c
PrettyText.cook("<p>Voici la phrase avant les émojis</p><div>🦊🦊🦊🦊</div>")
=> "<p>Voici la phrase avant les émojis</p><div>🦊🦊🦊🦊</div>"

par opposition à

rails c
PrettyText.cook("🦊🦊🦊🦊")
=> "<p><img src=\"/images/emoji/twitter/fox_face.png?v=9\" title=\":fox_face:\" class=\"emoji\" alt=\":fox_face:\"><img src=\"/images/emoji/twitter/fox_face.png?v=9\" title=\":fox_face:\" class=\"emoji\" alt=\":fox_face:\"><img src=\"/images/emoji/twitter/fox_face.png?v=9\" title=\":fox_face:\" class=\"emoji\" alt=\":fox_face:\"><img src=\"/images/emoji/twitter/fox_face.png?v=9\" title=\":fox_face:\" class=\"emoji\" alt=\":fox_face:\"></p>"

Que faisons-nous à ce sujet ?

De manière générale, certains problèmes liés à la conversion du HTML complet d’un article WordPress en article Discourse ne sont pas surprenants. L’enregistrement de l’article WordPress sur Discourse n’est que cela : un enregistrement de l’article.

Cela dit, @simon et moi travaillons activement à l’amélioration de ce processus, tant dans wp-discourse que dans Discourse lui-même, avec une priorisation appropriée. Nous allons nous concentrer sur quelques autres aspects à cet égard (par exemple, le problème des images brisées mentionné ci-dessus) avant de nous attaquer à celui-ci. Vous devrez donc patienter un peu avant qu’une correction officielle ne soit disponible pour ce cas précis.

Il y a en effet du code HTML avant le premier emoji (car WordPress enveloppe le contenu entre les balises <p>) et le paramètre « contenu complet du message » est activé.

Merci pour ces informations !

Hé, juste une note : traiter ce point figure à mon agenda pour juin de cette année. Si quelqu’un rencontre un problème étroitement lié à celui-ci, veuillez me le faire savoir et je l’examinerai en même temps.