يشرح هذا الدليل كيفية نشر التعليمات البرمجية أو النصوص المُنسقة مسبقًا في Discourse باستخدام تنسيقات Markdown وBBCode وHTML.
المستوى المطلوب للمستخدم: جميع المستخدمين
هل لديك سطر من التعليمات البرمجية تحتاج إلى مشاركته؟ ربما تحتاج إلى مشاركة سجل أخطاء من موقعك؟ يمكن أن تكون قراءة التعليمات البرمجية غير المنسقة صعبة، خاصةً إذا كانت التعليمات البرمجية تعتمد على المسافات أو تحتوي على أحرف خاصة يقوم Discourse بتحويلها.
الملخص
في هذا الدليل، ستتعلم:
- كيفية تنسيق التعليمات البرمجية ضمن النص (Inline code).
- كيفية تنسيق أسطر كاملة من التعليمات البرمجية.
- كيفية تنسيق كتل التعليمات البرمجية.
- كيفية استخدام BBCode وHTML لتنسيق التعليمات البرمجية.
- كيفية تعطيل التنسيق التلقائي للتعليمات البرمجية.
تنسيق التعليمات البرمجية ضمن النص (Inline Code Formatting)
لتنسيق جزء معين من النص، استخدم علامة اقتباس واحدة (backtick) على كل جانب من جوانب التعليمات البرمجية. يمكن القيام بذلك داخل النص العادي، أو عندما تكون التعليمات البرمجية في سطرها الخاص. لا يطبق التنسيق ضمن النص أي تنسيق تلقائي للتعليمات البرمجية (انظر أدناه)، ويطبق فقط “نمط التعليمات البرمجية” على النص الموجود بين علامتي الاقتباس.
المثال 1:
الكتابة:
This is a line of code
الناتج:
This is a line of code
المثال 2:
الكتابة:
Here’s some text with a bit of code inside!
الناتج:
Here’s some text with a bit of code inside!
تنسيق سطر كامل من التعليمات البرمجية
لتنسيق سطر كامل، أضف 4 مسافات في بداية السطر. سيتم تنسيق كل النص حتى فاصل السطر التالي كتعليمات برمجية.
المثال:
الكتابة:
All text after 4 spaces will be formatted.
الناتج:
All text after 4 spaces will be formatted.
تنسيق كتل التعليمات البرمجية (Block Code Formatting)
على الرغم من أنه يمكنك استخدام طريقة المسافات الأربع لإنتاج أسطر متعددة من التعليمات البرمجية، إلا أن هذا قد يكون مملاً، خاصةً إذا كنت تقوم بالنسخ واللصق وتحتاج إلى كتابة 4 مسافات على أسطر متعددة من النص.
بدلاً من ذلك، استخدم 3 علامات اقتباس (`) في سطرها الخاص قبل وبعد التعليمات البرمجية الخاصة بك. تأكد من عدم وجود مسافات في الأسطر التي تحتوي على علامات الاقتباس، وإلا فلن يعمل هذا.
المثال:
الكتابة:
```
public class CodeFormatting {
public static void main(String[] args) {
System.out.println("I can format code now!");
}
}
```
الناتج:
public class CodeFormatting {
public static void main(String[] args) {
System.out.println("I can format code now!");
}
}
BBCode وHTML
بالإضافة إلى Markdown، يدعم Discourse مجموعة فرعية من BBCode وHTML.
بالنسبة لـ HTML، استخدم الوسوم <pre> و<code>:
<pre><code>
public class CodeFormatting {
public static void main(String[] args) {
System.out.println("I can format code now!");
}
}
</code></pre>
بالنسبة لـ BBCode، استخدم الوسم [code]:
[code]
public class CodeFormatting {
public static void main(String[] args) {
System.out.println("I can format code now!");
}
}
[/code]
تحديد لغة البرمجة
افتراضيًا، يكتشف Discourse لغة التعليمات البرمجية الخاصة بك وينسقها وفقًا لذلك.
لتحديد لغة البرمجة يدويًا لكتلة التعليمات البرمجية، اكتب اسم اللغة مباشرةً بعد المجموعة الأولى من علامات الاقتباس:
``` your_language
# Your code here
مثال
لتحديد Ruby:
الكتابة:
``` ruby
3.times do |stuff|
stuff.do
end
```
الناتج:
3.times do |stuff|
stuff.do
end
يجب أن تكون اللغة إحدى اللغات المميزة المكونة لتمييز بناء الجملة على موقعك. يمكن العثور على القائمة الافتراضية في config/site_settings.yml عن طريق البحث عن highlighted_languages.
يمكنك أيضًا تعيين لغة التعليمات البرمجية الافتراضية باستخدام إعداد الموقع default code lang.
قمع التمييز (Suppressing Highlighting)
إذا كنت تريد منع أي تمييز لبناء الجملة، يمكنك استخدام text كلغة:
مثال
الكتابة:
``` text
Your text to NOT highlight here
الناتج:
Your text to NOT highlight here
أفضل الممارسات
- تأكد دائمًا من إحاطة التعليمات البرمجية ضمن النص بعلامات اقتباس مفردة للوضوح.
- استخدم تنسيق كتل التعليمات البرمجية لمشاركة مقتطفات أكبر من التعليمات البرمجية.
- تجنب التنسيق التلقائي للتعليمات البرمجية عند مشاركة النصوص أو السجلات التي لا تستفيد من التنسيق الخاص باللغة.
- حدد اللغة إذا كان الكشف التلقائي لا يتعرف على التعليمات البرمجية الخاصة بك بشكل صحيح.