الأولوية/الخطورة:
متوسط
المنصة:
نظام التشغيل
- Windows 11
المتصفح
- Google Chrome 141.0.7390.123
Discourse
fb4bd7951aa6ae8c814df702807c12ccb77bd3fd
الوصف:
يهدف محرر النصوص المنسقة “rich text editor” إلى توفير تجربة “WYSIWYG” (ما تراه هو ما تحصل عليه)، حيث يتم عرض المحتوى المرئي في المؤلف بالضبط كما سيظهر في المنشور المنشور.
قد يتم تخزين النص المنسوخ من بعض المصادر في الحافظة في شكل منسق (نوع text/html) بالإضافة إلى النص العادي (نوع text/plain).
عند لصق النص في المؤلف، إذا كان نوع بيانات منسق موجودًا في الحافظة، فسيتم استخدام هذه البيانات بدلاً من نوع النص العادي.
نظرًا للطبيعة البسيطة للصيغة، من الشائع أن يحتوي النص على محتوى يشبه عن طريق الصدفة علامات Markdown.
يتم عرض المنشور المنشور بشكل مختلف عما هو معروض في “محرر النصوص المنسقة” عند لصق المحتوى المنسق الذي يحتوي على علامات Markdown عرضية معينة.
خطوات التكرار:
علامات القائمة العرضية
- أنشئ ملف HTML بالمحتوى التالي:
<html> <body> <br />- foo </body> </html> - افتح الملف في متصفح الويب الخاص بك.
- انسخ محتوى صفحة الويب.
- افتح مؤلف المنشور.
- ضع المؤلف في وضع “محرر النصوص المنسقة”.
- الصق المحتوى المنسوخ في المؤلف.
تم لصق النص حرفيًا، بدلاً من عرضه كقائمة:
- foo
- انشر المنشور.
بدلاً من مطابقة ما شوهد في المؤلف، تم عرض المحتوى كقائمة غير مرتبة:
- foo
علامات كتلة التعليمات البرمجية العرضية
- أنشئ ملف HTML بالمحتوى التالي:
<html> <body> <span style="white-space: pre"> foo</span> </body> </html> - افتح الملف في متصفح الويب الخاص بك.
- انسخ محتوى صفحة الويب.
- افتح مؤلف المنشور.
- ضع المؤلف في وضع “محرر النصوص المنسقة”.
- الصق المحتوى المنسوخ في المؤلف.
تم لصق النص حرفيًا، بدلاً من عرضه ككتلة تعليمات برمجية:
foo
- انشر المنشور.
بدلاً من مطابقة ما شوهد في المؤلف، تم عرض المحتوى ككتلة تعليمات برمجية:
foo
علامات كتلة التعليمات البرمجية العرضية مع علامات BBCode العرضية
- أنشئ ملف HTML بالمحتوى التالي:
<html> <body> <span style="white-space: pre"> [foo]</span> </body> </html> - افتح الملف في متصفح الويب الخاص بك.
- انسخ محتوى صفحة الويب.
- افتح مؤلف المنشور.
- ضع المؤلف في وضع “محرر النصوص المنسقة”.
- الصق المحتوى المنسوخ في المؤلف.
تم لصق النص حرفيًا:
[foo]
- انشر المنشور.
بدلاً من مطابقة ما شوهد في المؤلف، تم عرض المحتوى ككتلة تعليمات برمجية، مع إضافة شرطات مائلة عكسية قبل الأقواس:
\[foo\]
سياق إضافي:
أعتقد أنه من الصحيح أن يتجاهل محرر النصوص المنسقة علامات Markdown الظاهرة الموجودة في المحتوى الملصق الذي يحمل نوع “text/html”. سيتم تحديد أي تنسيق مقصود في هذا المحتوى بواسطة علامات HTML، لذا فإن المحتوى الذي يشبه Markdown هو على الأرجح عرضي وليس علامة حقيقية. لذا فإن الخطأ هنا هو أن صيغة Markdown العرضية يتم عرضها عند النشر؛ وليس أنها لا يتم عرضها في المؤلف.
أنا قادر على تكرار الخطأ على try.discourse.org في “وضع الأمان”.