مرحباً بالجميع!
في هذا الموضوع، سأشير إلى مواضيع أخرى، لكنني أعتقد أنني سأصف مشكلة أكبر من تلك التي ذكرتها التقارير الأخرى.
بيئة الاختبار الخاصة بي
- نظام التشغيل: MacOS 15.6.1
- المتصفح: Google Chrome 139.0.7258.140 (Official Build) (arm64)
الملاحظة الأصلية
لاحظت أن محرر النصوص الغنية في المنشئ يكسر كتل التعليمات البرمجية بشكل متكرر. بدأ المستخدمون في نشر التعليمات البرمجية والسجلات الخاصة بهم في سطر واحد، واعتقدت في البداية أنهم ارتكبوا خطأ أثناء نسخ المحتوى الخاص بهم إلى المنشئ. لم تكن هناك أي مسافات بيضاء بين الأسطر المنشورة على الإطلاق، وليس فقط فواصل الأسطر.
في بعض الأحيان، كان المستخدمون ينشرون تعليمات برمجية متعددة في سطر واحد، مما يؤدي إلى فقدان المسافة البادئة في YAML. في بعض الأحيان كانت تعليمات برمجية متعددة الأسطر يتم تمييزها كسطر واحد، وفي بعض الأحيان كان سطرًا واحدًا في كتلة تعليمات برمجية. حدث ذلك بشكل متكرر جدًا، لذا اختبرت وضع النص الغني بالأمس ولكنني انتظرت قبل الإبلاغ. اليوم، لم أتمكن من تكرار هذه المشكلة، لكنني وجدت طريقة أخرى في محرر النصوص الغنية لكسر فواصل الأسطر في التعليمات البرمجية.
لم أكن متأكدًا مما إذا كانت هذه علة، لذا ناقشت المشكلة مع المشرفين لدينا، وانتظرت التأكيد على إصلاح العلة. ثم اتضح أننا لم نجد نفس السلوك، ولكن جميع المشكلات كانت متعلقة بالمسافات البيضاء. باستثناء ذلك، لم أتمكن من تكرار المشكلة التي ذكرها مشرف آخر، لكنني أدركت أن السبب هو أنه قام بنسخ النص من محرر تعليمات برمجية أو طرفية، وقمت بنسخه من كتلة التعليمات البرمجية السابقة الخاصة بي من المنتدى، لذلك جاءت مشكلة المسافة البيضاء بشكل مختلف.
طرق مختلفة لكسر المسافات البيضاء في كتل التعليمات البرمجية
الطريقة الأولى
- انسخ مخرجًا من طرفية
- الصق المخرج في المنشئ في وضع النص الغني مثل هذا (جزء من مخرج
runcبدون وسائط)
COMMANDS:
checkpoint checkpoint a running container
create create a container
delete delete any resources held by the container often used with detached
- سترى مخرجًا متعدد الأسطر، ولكن تمت إزالة المسافة البادئة
- الآن أدرك أنك تريد كتلة تعليمات برمجية واجعلها كذلك عن طريق تحديد النص والنقر على زر “Code”.
- الآن التعليمات البرمجية غريبة بعض الشيء، لأنها تبدو كتعليمات برمجية، ولكن ليس ككتلة تعليمات برمجية. قم بالتبديل مرة أخرى إلى markdown لمعرفة السبب ولاحظ هذا:
`COMMANDS:`
`checkpoint checkpoint a running container`
`create create a container`
`delete delete any resources held by the container often used with detached container`
- كما ترى أعلاه، أصبح كل سطر من النص رمزًا لسطر واحد.
(شكرًا @per1234 لربط تقرير العلة ذي الصلة أدناه Rich Text editor in topics breaks white-space characters in multiple ways - #2 by per1234)
نسخ تعليمات برمجية من موضوع آخر أو مشاركة أخرى في نفس الموضوع
الموضوع الحالي الذي وجدته: `white-space` CSS property of clipboard data not respected when pasting in rich text editor
بالطبع، هذه ليست الطريقة الصحيحة للنسخ في Discourse، حيث لديك زر “Quote” للنصوص المحددة والذي يعمل عادةً مع أجزاء من كتلة التعليمات البرمجية أيضًا، ولديك أيضًا زر نسخ في زاوية كل كتلة تعليمات برمجية، ولكن هذه هي الطريقة التي لاحظت بها المشكلة، ولم يعمل زر النسخ أيضًا.
- انسخ تعليمات برمجية متعددة الأسطر من صفحة HTML
- الصقها في المنشئ في وضع النص الغني
- لاحظ أن فواصل الأسطر قد اختفت
- في هذه المرحلة، قد تعتقد أنها موجودة في HTML فقط، لذا اجعلها تعليمات برمجية
- لم تعد فواصل الأسطر
استخدام زر النسخ في الزاوية العلوية اليمنى لكتلة تعليمات برمجية في مشاركة أخرى
- حرك مؤشر الماوس فوق كتلة تعليمات برمجية موجودة
- لاحظ أن زر “Copy” الصغير ظهر في الزاوية العلوية اليمنى
- انقر على هذا الزر لنسخ التعليمات البرمجية
- الصقها في المنشئ في وضع النص الغني
- يتم الاحتفاظ بفواصل الأسطر، ولكن تمت إزالة المسافة البادئة بنفس الطريقة التي حدثت بها عند النسخ مباشرة من HTML.
- اجعلها كتلة تعليمات برمجية واحصل على تعليمات برمجية متعددة لسطر واحد بدون مسافة بادئة
مشكلة ربما تم إصلاحها حدثت عند التبديل مرة أخرى إلى MarkDown
- اكتب كتلة تعليمات برمجية في محرر النصوص الغنية
- شاهد كتلة تعليمات برمجية متعددة الأسطر جيدة تمامًا
- قم بالتبديل مرة أخرى إلى MarkDown
- شاهد سطرًا واحدًا بدلاً من كتلة التعليمات البرمجية
- لاحظ أنها لم تعد كتلة تعليمات برمجية، ولكن إذا كان النص طويلاً، فقد تفوتك حقيقة أن المسافة البادئة قد اختفت أيضًا
- اجعلها كتلة تعليمات برمجية
- انشرها واحصل على كتلة تعليمات برمجية تحتوي على سطر واحد حيث تمت إزالة فواصل الأسطر تمامًا، ولم يتم الاحتفاظ حتى بمسافة واحدة
- مرة أخرى، هذه هي المشكلة التي لا يمكنني تكرارها اليوم، ولم أبحث عن ملاحظات الإصدار لمعرفة ما إذا تم إصلاحها، لكنني لم أتمكن أيضًا من العثور على هذه المشكلة المبلغ عنها في مواضيع أخرى.
الخلاصة
لذلك يبدو أن وضع النص الغني لديه مشاكل مع كتل التعليمات البرمجية بطرق متعددة. إنه يجعل الإشراف أصعب حيث نفترض غالبًا أن المستخدم لم يقم بتنسيق مشاركته بشكل صحيح، لذلك نربط دليل التنسيق الخاص بنا، والذي لن يعمل في وضع النص الغني، ولكن هذه ليست المشكلة حيث يمكن تعديل الأدلة. ومع ذلك، يحاول المستخدمون بالفعل تنسيق مشاركاتهم ويفشلون بسبب محرر النصوص الغنية.
نظرًا لأن المشكلة الأصلية التي لاحظتها هي التي تم إصلاحها على الأرجح بحلول الآن، يبدو لي أن بعض المستخدمين بدأوا بمحرر النصوص الغنية، ولم يعجبهم، وتحولوا إلى Markdown، وأدركوا أنهم كسروا كتل التعليمات البرمجية، وحاولوا الإصلاح، لكنهم لم يتمكنوا ولم يلصقوا كل شيء مرة أخرى.
الآن في هذه المرحلة، أود أيضًا الإشارة إلى هذا الموضوع حول تعطيل محرر النصوص الغنية تمامًا: How can i set disable Markdown & Default to Rich Text
أربطها لأن هذا كان أحد أول المواضيع التي وجدتها أثناء البحث عن تقارير موجودة بالأمس، وقمت للتو بتغيير الإعداد الافتراضي مرة أخرى إلى MarkDown. أتوقف هنا لتجنب أي رد فعل على هذا الجزء، وسأضيف على الأرجح بعض الملاحظات في الموضوع الآخر.
ملاحظة: لقد استخدمت ميزة التدقيق اللغوي في هذه المشاركة. إنها مذهلة!