WordPress 이모지와 Discourse

안녕하세요,

WP(WordPress)에서 이모지와 관련된 기본 설정(있다면…)을 사용하고 있습니다.
WP에서 문자 이모지를 포함한 텍스트를 작성했는데:

WordPress가 이를 자동으로 SVG 트위터 이모지로 변환합니다:

예시로, 첫 번째 이모지에서 생성된 HTML 코드는 다음과 같습니다:

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

게시물이 Discourse로 전송되면 HTML이 약간 수정됩니다:

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

span 안에 이모지 HTML 엔티티를 삽입하기 때문입니다.

그 결과 게시물은 깔끔하게 포맷되지만, 이모지가 포럼의 이모지 세트로 변환되지 않습니다:

포럼에서 선택한 이모지 세트로 표시되도록 하는 방법이 있을까요?

이 문제는 플러그인이 아니라 Discourse 자체에서 발생한 것일 수 있습니다.

기본 WordPress 이모지 처리 방식을 사용 중이라면, WordPress 편집기에 유니코드 이모지를 복사/붙여넣는 중이라고 가정합니다. 이렇게 하면 Discourse로 전송되는 원본 게시물 콘텐츠에는 단순히 유니코드 이모지만 포함됩니다. Discourse는 일반적으로 이러한 이모지를 해당 포럼의 이모지 세트로 변환해야 합니다. 특정 상황에서 이 문제를 재현할 수 있음을 확인했습니다.

이 문제에 대해서는 다시 확인 후 알려드리겠습니다.

@Canapin 안녕하세요 :slight_smile: 이 건에 대한 업데이트를 드릴게요.

이 문제는 다음과 같은 상황에서 발생합니다.

  1. wp-discourse에서 “전체 게시글 내용” 설정을 활성화한 경우
  2. 워드프레스에서 이모지가 삽입되기 전에 최소 한 줄 이상의 내용을 가진 게시글을 생성한 경우

우선, 이 경우에도 위와 같이(특히 “전체 게시글 내용” 설정) 진행하셨는지 확인해 주실 수 있을까요?

이러한 상황에서는 wp-discourse 플러그인이 HTML을 Discourse로 전송하며, 이는 토픽 임베드로 가져와집니다. Discourse가 게시글 생성 시 HTML을 처리하려고 할 때 이 문제를 포함해 여러 다른 문제가 발생할 수 있습니다. 예를 들어, 발생하는 또 다른 문제는 Fix broken images for posts created by the WP Discourse and RSS plugins 입니다.

기술적인 측면에서(기술에 밝으신 분이라는 걸 알고 있기에 :wink: ), 관련 Discourse ruby 클래스를 사용하여 유니코드 이모지가 포함된 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>"

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

그렇다면 우리는 어떻게 대응하고 있나요?

일반적으로 말씀드리면, 워드프레스 전체 게시글 HTML > Discourse 게시글 변환 과정에서 발생하는 일부 문제는 예상되는 범위입니다. Discourse의 워드프레스 게시글 기록은 단순히 그 게시글의 기록일 뿐이므로요.

그럼에도 불구하고, @simon과 저는 wp-discourse와 Discourse 자체 모두에서 해당 프로세스를 적절한 우선순위에 따라 개선하는 데 적극적으로取り組んでいます. 이 문제보다 먼저 몇 가지 다른 사항(예: 위에서 언급된 깨진 이미지 문제)에 초점을 맞출 계획입니다. 따라서 이 문제에 대한 공식적인 수정이 적용되기까지 잠시 기다려 주셔야 합니다.

실제로 첫 이모지 앞에 HTML 코드가 있습니다(Wordpress가 내용을 <p> 태그로 감싸기 때문이죠) 그리고 “전체 게시물 내용”이 활성화되어 있습니다.

정보 주셔서 감사합니다!

이 문제를 6월에 처리할 계획이니 참고해 주세요. 이와 밀접하게 관련된 다른 문제가 있으시면 알려주시면, 함께 검토하겠습니다.