علامة ماركداون مصادفة في محتوى منسق تم لصقه في محرر نص منسق تم عرضه عند النشر

الأولوية/الخطورة:

متوسط

المنصة:

نظام التشغيل

  • Windows 11

المتصفح

  • Google Chrome 141.0.7390.123

Discourse

fb4bd7951aa6ae8c814df702807c12ccb77bd3fd

الوصف:

يهدف محرر النصوص المنسقة “rich text editor” إلى توفير تجربة “WYSIWYG” (ما تراه هو ما تحصل عليه)، حيث يتم عرض المحتوى المرئي في المؤلف بالضبط كما سيظهر في المنشور المنشور.

قد يتم تخزين النص المنسوخ من بعض المصادر في الحافظة في شكل منسق (نوع text/html) بالإضافة إلى النص العادي (نوع text/plain).

عند لصق النص في المؤلف، إذا كان نوع بيانات منسق موجودًا في الحافظة، فسيتم استخدام هذه البيانات بدلاً من نوع النص العادي.

نظرًا للطبيعة البسيطة للصيغة، من الشائع أن يحتوي النص على محتوى يشبه عن طريق الصدفة علامات Markdown.

:bug: يتم عرض المنشور المنشور بشكل مختلف عما هو معروض في “محرر النصوص المنسقة” عند لصق المحتوى المنسق الذي يحتوي على علامات Markdown عرضية معينة.

خطوات التكرار:

علامات القائمة العرضية

  1. أنشئ ملف HTML بالمحتوى التالي:
    <html>
      <body>
    <br />- foo
      </body>
    </html>
    
  2. افتح الملف في متصفح الويب الخاص بك.
  3. انسخ محتوى صفحة الويب.
  4. افتح مؤلف المنشور.
  5. ضع المؤلف في وضع “محرر النصوص المنسقة”.
  6. الصق المحتوى المنسوخ في المؤلف.
    :slightly_smiling_face: تم لصق النص حرفيًا، بدلاً من عرضه كقائمة:

    - foo

  7. انشر المنشور.

:bug: بدلاً من مطابقة ما شوهد في المؤلف، تم عرض المحتوى كقائمة غير مرتبة:

  • foo

علامات كتلة التعليمات البرمجية العرضية

  1. أنشئ ملف HTML بالمحتوى التالي:
    <html>
      <body>
        <span style="white-space: pre">    foo</span>
      </body>
    </html>
    
  2. افتح الملف في متصفح الويب الخاص بك.
  3. انسخ محتوى صفحة الويب.
  4. افتح مؤلف المنشور.
  5. ضع المؤلف في وضع “محرر النصوص المنسقة”.
  6. الصق المحتوى المنسوخ في المؤلف.
    :slightly_smiling_face: تم لصق النص حرفيًا، بدلاً من عرضه ككتلة تعليمات برمجية:

        foo

  7. انشر المنشور.

:bug: بدلاً من مطابقة ما شوهد في المؤلف، تم عرض المحتوى ككتلة تعليمات برمجية:

foo

علامات كتلة التعليمات البرمجية العرضية مع علامات BBCode العرضية

  1. أنشئ ملف HTML بالمحتوى التالي:
    <html>
      <body>
        <span style="white-space: pre">    [foo]</span>
      </body>
    </html>
    
  2. افتح الملف في متصفح الويب الخاص بك.
  3. انسخ محتوى صفحة الويب.
  4. افتح مؤلف المنشور.
  5. ضع المؤلف في وضع “محرر النصوص المنسقة”.
  6. الصق المحتوى المنسوخ في المؤلف.
    :slightly_smiling_face: تم لصق النص حرفيًا:

        [foo]

  7. انشر المنشور.

:bug: بدلاً من مطابقة ما شوهد في المؤلف، تم عرض المحتوى ككتلة تعليمات برمجية، مع إضافة شرطات مائلة عكسية قبل الأقواس:

\[foo\]

سياق إضافي:

أعتقد أنه من الصحيح أن يتجاهل محرر النصوص المنسقة علامات Markdown الظاهرة الموجودة في المحتوى الملصق الذي يحمل نوع “text/html”. سيتم تحديد أي تنسيق مقصود في هذا المحتوى بواسطة علامات HTML، لذا فإن المحتوى الذي يشبه Markdown هو على الأرجح عرضي وليس علامة حقيقية. لذا فإن الخطأ هنا هو أن صيغة Markdown العرضية يتم عرضها عند النشر؛ وليس أنها لا يتم عرضها في المؤلف.


أنا قادر على تكرار الخطأ على try.discourse.org في “وضع الأمان”.

إعجاب واحد (1)