رموز تعبيرية ووردبريس و ديسكورس

مرحبًا،

لدي إعدادات ووردبريس الافتراضية (إن وجدت) تتعلق بالرموز التعبيرية.
في ووردبريس، كتبت نصًا يحتوي على رموز تعبيرية:

يقوم ووردبريس تلقائيًا بتحويلها إلى رموز تعبيرية 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>

عند إرسال المنشور إلى ديسكورد، يتم تعديل كود HTML قليلاً:

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

حيث يقوم بإدراج كيان HTML الخاص بالرمز التعبيري داخل الـ span.

النتيجة هي منشور منسق بشكل جميل، لكن الرموز التعبيرية لا يتم تحويلها إلى مجموعة الرموز التعبيرية الخاصة بالمنتدى:

هل توجد طريقة لجعل الرموز التعبيرية تُعرض باستخدام المجموعة المختارة من قبل المنتدى؟

قد تكون هذه مشكلة في Discourse نفسها وليس في الإضافة.

إذا كنت تستخدم معالجة الرموز التعبيرية الافتراضية في WordPress، فأنا أفترض أنك تنسخ وتلصق رموزًا تعبيرية Unicode في محرر WordPress. عند فعل ذلك، ستحتوي محتوى المنشور الخام المرسَل إلى Discourse على رموز Unicode فقط. يجب أن يقوم 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:\"><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 الكامل لمنشورات WordPress إلى منشورات في Discourse أمراً غير متوقع. فمسجل منشور WordPress في Discourse هو مجرد سجل لتلك المنشورات.

ومع ذلك، فإن @simon وأنا نعمل بنشاط على تحسين هذه العملية في كل من wp-discourse وDiscourse نفسه، مع تحديد أولويات مناسبة. سنركز على بعض الأمور الأخرى في هذا الصدد (مثل مشكلة الصور التالفة المذكورة أعلاه) قبل أن نصل إلى هذه المشكلة. لذا، ستحتاج إلى الصبر قليلاً حتى يتم إصلاحها رسمياً.

في الواقع، يوجد كود HTML قبل أول رمز تعبيري (حيث أن ووردبريس يحيط المحتوى بوسوم <p>)، وتم تفعيل خيار “محتوى المنشور الكامل”.

شكرًا لك على المعلومات!

مرحبًا، مجرد ملاحظة بأن معالجة هذا الأمر مدرجة في جدول أعمالي لشهر يونيو من هذا العام. إذا كان لدى أي شخص مشكلة مرتبطة ارتباطًا وثيقًا بهذا الأمر، فيرجى إخباري وسأقوم بالنظر فيها في نفس الوقت.