Wordpress emoji e Discourse

Ciao,

Ho le impostazioni predefinite di WP (se ce ne sono…) relative agli emoji.
Su WP ho scritto un testo contenente emoji:

WordPress le converte automaticamente in emoji SVG di Twitter:

Ecco il codice HTML generato per la prima emoji, a titolo di esempio:

<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 il post viene inviato su Discourse, l’HTML viene leggermente modificato:

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

Poiché inserisce l’entità HTML dell’emoji all’interno dello span.

Il risultato è un post ben formattato, ma le emoji non vengono convertite nel set di emoji del forum:

Esiste un modo per far sì che le emoji vengano visualizzate utilizzando il set scelto dal forum?

Questo potrebbe essere un problema di Discourse, piuttosto che del plugin.

Se stai utilizzando la gestione predefinita delle emoji di WordPress, presumo che tu stia copiando e incollando emoji Unicode nell’editor di WordPress. Se lo fai, il contenuto grezzo del post inviato a Discourse conterrà semplicemente le emoji Unicode. Discourse dovrebbe normalmente convertirle nel set di emoji del forum. Posso effettivamente riprodurre il problema in determinate circostanze.

Ritorno da te su questo punto.

3 Mi Piace

@Canapin Ciao :slight_smile: Aggiornamento su questa questione.

Il problema si presenta quando:

  1. Hai abilitato l’impostazione “contenuto completo del post” in wp-discourse
  2. Hai creato un post su WordPress con almeno una riga di contenuto prima dell’inserimento delle emoji.

Innanzitutto, potresti confermarmi che è esattamente ciò che hai fatto in questo caso (in particolare l’impostazione “contenuto completo del post”)?

In queste circostanze, il plugin wp-discourse invia HTML a Discourse, che viene importato come un embed di argomento. Quando Discourse tenta di elaborare l’HTML durante la creazione di un post, possono sorgere diversi problemi, incluso questo. Ad esempio, un altro problema che si verifica è Fix broken images for posts created by the WP Discourse and RSS plugins.

Sul fronte tecnico (so che sei esperto :wink: ), puoi vedere direttamente il problema se provi a utilizzare la classe Ruby di Discourse pertinente per analizzare una stringa HTML contenente emoji Unicode.

Dettagli tecnici del problema
rails c
PrettyText.cook("<p>Questa è la frase prima delle emoji</p><div>🦊🦊🦊🦊</div>")
=> "<p>Questa è la frase prima delle emoji</p><div>🦊🦊🦊🦊</div>"

visto che

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

Quindi cosa stiamo facendo a riguardo?

In generale, alcuni problemi nella conversione dell’HTML completo dei post di WordPress in post di Discourse non sono inaspettati. La registrazione del post di WordPress su Discourse è proprio questo: una registrazione del post.

Detto questo, @simon e io stiamo lavorando attivamente per migliorare tale processo sia in wp-discourse che in Discourse stesso, con un’adeguata priorità. In questa direzione, ci concentreremo prima su alcune altre cose (ad esempio, il problema delle immagini rotte menzionato sopra) prima di occuparci di questo. Quindi dovrai attendere ancora un po’ per una soluzione ufficiale a questo problema.

3 Mi Piace

Infatti c’è del codice HTML prima del primo emoji (poiché WordPress racchiude il contenuto tra i tag <p>) e l’opzione “contenuto completo del post” è abilitata.

Grazie per le informazioni!

1 Mi Piace

Ehi, solo una nota: la risoluzione di questa questione è in programma per giugno di quest’anno. Se qualcuno ha un problema strettamente correlato, fatemelo sapere e lo valuterò allo stesso tempo.

2 Mi Piace