Эмодзи WordPress и Discourse

@Canapin Привет :slight_smile: Просто обновление по этому вопросу.

Проблема возникает, когда:

  1. Вы включили настройку «полное содержимое поста» в wp-discourse.
  2. Вы создали пост в WordPress, содержащий хотя бы одну строку текста до вставки эмодзи.

Сначала, не могли бы вы подтвердить, что в данном случае вы сделали именно так (особенно в части настройки «полное содержимое поста»)?

В таких обстоятельствах плагин wp-discourse отправляет HTML в Discourse, который импортируется как встраиваемая тема. При попытке Discourse обработать HTML во время создания поста могут возникнуть несколько проблем, включая эту. Например, ещё одна возникающая проблема описана здесь: Fix broken images for posts created by the WP Discourse and RSS plugins.

С технической точки зрения (поскольку, как я знаю, вы разбираетесь в технике :wink: ), вы можете увидеть проблему напрямую, если попробуете использовать соответствующий Ruby-класс Discourse для разбора HTML-строки с юникод-эмодзи.

Технические детали проблемы
rails c
PrettyText.cook("<p>This is the sentence before the emojis</p><div>🦊🦊🦊🦊</div>")
=> "<p>This is the sentence before the emojis</p><div>🦊🦊🦊🦊</div>"

в отличие от

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

Что же мы будем делать?

В целом, некоторые проблемы при конвертации полного HTML-содержимого постов WordPress в посты Discourse не являются неожиданными. Запись поста WordPress в Discourse — это просто запись этого поста.

Тем не менее, @simon и я активно работаем над улучшением этого процесса как в wp-discourse, так и в самом Discourse, с соответствующей приоритизацией. Мы сосредоточимся на нескольких других вещах в этом отношении (например, на проблеме с битыми изображениями, упомянутой выше), прежде чем перейдём к этой. Поэтому вам придётся немного подождать официального исправления именно этой проблемы.