Wordpress emojis e Discourse

Olá,

Tenho as configurações padrão do WP (se houver alguma…) em relação aos emojis.
No WP, escrevi um texto com emojis de caracteres:

O WordPress converte automaticamente esses emojis para emojis SVG do Twitter:

Aqui está o código HTML gerado do primeiro emoji, como exemplo:

<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>

Quando a postagem é enviada para o Discourse, o HTML é ligeiramente modificado:

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

Isso ocorre porque ele insere a entidade HTML do emoji dentro da tag span.

O resultado é uma postagem bem formatada, mas os emojis não são convertidos para o conjunto de emojis do fórum:

Existe alguma maneira de fazer com que os emojis sejam exibidos usando o conjunto escolhido pelo fórum?

Isso pode ser um problema do Discourse, e não do plugin.

Se você estiver usando o tratamento padrão de emojis do WordPress, presumo que esteja copiando e colando emojis Unicode no editor do WordPress. Se fizer isso, o conteúdo bruto da postagem enviado ao Discourse incluirá apenas os emojis Unicode. O Discourse normalmente deve convertê-los para o conjunto de emojis do fórum. De fato, consigo reproduzir o problema em certas circunstâncias.

Vou precisar verificar isso e retorno a você sobre o caso.

@Canapin Olá :slight_smile: Apenas uma atualização sobre este caso.

O problema aqui surge quando:

  1. Você ativou a configuração “conteúdo completo do post” no wp-discourse
  2. Você criou um post no WordPress com pelo menos uma linha de conteúdo antes da inserção de emojis.

Primeiramente, você poderia apenas confirmar comigo que foi isso que você fez neste caso (especialmente a configuração “conteúdo completo do post”)?

Nessas circunstâncias, o plugin wp-discourse envia HTML para o Discourse, que é importado como um embed de tópico. Vários problemas diferentes, incluindo este, podem surgir quando o Discourse tenta processar o HTML ao criar um post. Por exemplo, outro problema que surge é Fix broken images for posts created by the WP Discourse and RSS plugins.

No aspecto técnico (já que sei que você é técnico :wink: ), você pode ver o problema diretamente se tentar usar a classe Ruby relevante do Discourse para analisar uma string HTML com emojis Unicode.

Detalhes técnicos do problema
rails c
PrettyText.cook("<p>Esta é a frase antes dos emojis</p><div>🦊🦊🦊🦊</div>")
=> "<p>Esta é a frase antes dos emojis</p><div>🦊🦊🦊🦊</div>"

versus

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>"

Então, o que estamos fazendo a respeito?

De modo geral, alguns problemas na conversão de HTML completo de post do WordPress para post do Discourse não são inesperados. O registro do post do WordPress no Discourse é apenas isso: um registro do post.

Dito isso, @simon e eu estamos ativamente trabalhando para melhorar esse processo tanto no wp-discourse quanto no próprio Discourse, com a devida priorização. Vamos focar em algumas outras coisas a esse respeito (por exemplo, o problema de imagens quebradas mencionado acima) antes de abordar este. Portanto, você precisará ter um pouco de paciência até que uma correção oficial seja lançada para este caso.

De fato, há código HTML antes do primeiro emoji (já que o WordPress envolve o conteúdo entre tags <p>) e a opção “conteúdo completo da postagem” está ativada.

Obrigado pela informação!

Ei, apenas uma nota de que resolver isso está na minha agenda para junho deste ano. Se alguém tiver um problema relacionado a isso, por favor, me avise e eu verei ao mesmo tempo.