بالتأكيد. يسعدني أن تكون المعلومات مفيدة. أود أن أكرر ما قلته سابقًا:
ومع ذلك، سأكون سعيدًا إذا كنت مخطئًا بشأن ذلك
.
- انسخ كود C++ التالي:
#include <iostream> int main() { std::cout << __FILE__; } - افتح منشئ المشاركات.
- ضع المنشئ في وضع “محرر النصوص المنسقة”.
- الصق المحتوى المنسوخ في المنشئ.
المحتوى تالف:
#include
int main() {
std::cout << FILE;
}
(لاحظ أنه تم كتم \u003ciostream\u003e لأنه يشبه علامة HTML غير مدعومة، وتم التعامل مع __FILE__ كعلامة جريئة)
يمكن اعتبار هذا خطأ من المستخدم، حيث يمكن تجنبه عن طريق تشغيل كتلة الكود قبل لصق المحتوى غير النثري. ومع ذلك، قد نتوقع أن يكون سير العمل البديل المتمثل في تطبيق تنسيق كتلة الكود بأثر رجعي على المحتوى الملصق بنفس القدر من الصلاحية (كما هو الحال عند استخدام محرر Markdown).
المعدات
- أي لوحة Arduino (سواء كانت رسمية أو من طرف ثالث)
التعليمات
- قم بتثبيت Arduino IDE 2.3.6، والتي يمكن تنزيلها من صفحة “البرامج” على موقع Arduino:
https://www.arduino.cc/en/software/#ide-download-section - ابدأ Arduino IDE.
- حدد File > New Sketch من قوائم Arduino IDE.
- استبدل محتوى الرسم التخطيطي الجديد بالكود التالي:
void setup() { Serial.begin(9600); while (!Serial) {} // انتظر حتى يتم فتح منفذ التسلسلي. delay(500); // تتطلب بعض اللوحات تأخيرًا بعد تهيئة منفذ التسلسلي. Serial.println("foo"); Serial.println("bar"); } void loop() {} - حدد Tools > Serial Monitor من قوائم Arduino IDE لفتح عرض Serial Monitor، إذا لم يكن مفتوحًا بالفعل.
- حدد " 9600 " من قائمة معدل الباود في عرض Serial Monitor.
- قم بتحميل الرسم التخطيطي إلى لوحة Arduino الخاصة بك.
- حدد الإخراج التسلسلي من الحقل في عرض Serial Monitor.
- انسخ المحتوى المحدد.
- افتح منشئ مشاركات Discourse.
- ضع المنشئ في وضع “محرر النصوص المنسقة”.
- الصق المحتوى المنسوخ في المنشئ.
يتم وضع كل سطر من المحتوى المنسوخ في كتلة كود منفصلة:
foo
bar
إذا قمت بفحص محتوى الحافظة، فسترى أنه بالإضافة إلى نوع المحتوى المتوقع “text/plain”:
foo
bar
كما أنه يحتوي على نوع المحتوى “text/html” التالي:
<div style="color: rgb(78, 91, 97); font-family: monospace; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; position: absolute; left: 0px; top: 0px; height: 18px; width: 1862px;"><pre style="margin: 0px;">foo
</pre></div><div style="color: rgb(78, 91, 97); font-family: monospace; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: nowrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; position: absolute; left: 0px; top: 18px; height: 18px; width: 1862px;"><pre style="margin: 0px;">bar</pre></div>
نظرًا لأن مراقب التسلسل في Arduino IDE 2.x يلتف بشكل غير صحيح كل سطر من المحتوى المنسوخ من نوع “text/html” في علامات <pre>، فإن عرض كل سطر من المحتوى الملصق ككتلة كود منفصلة بواسطة محرر النصوص المنسقة لـ Discourse هو صحيح ومتوقع.
كما هو الحال مع المشكلة الأخرى التي وصفتها أعلاه، يمكن تجنب التنسيق غير المتوقع عن طريق تشغيل تنسيق كتلة الكود بشكل استباقي قبل لصق المحتوى.