يوفر هذا الدليل كيفية استخدام Markdown و BBCode و HTML في Discourse لنشر نص منسق.
مستوى المستخدم المطلوب: متاح لجميع المستخدمين
رابط الدليل الأصلي: Posting code or preformatted text
عندما يكون لديك رمز ترغب في مشاركته في Discourse، أو عندما تحتاج إلى نشر سجلات أخطاء في Discourse. إذا لم نقم بتنسيق الرمز، فسيكون من الصعب جدًا قراءة هذه المحتويات، بالإضافة إلى أن العديد من الرموز تحتوي على مسافات وأحرف أخرى، لذلك ستفقد هذه المحتويات معناها الأصلي عند تحويلها.
ملخص
في هذا الدليل، ستتعلم:
- كيفية تنسيق الرمز داخل السطر.
- كيفية تنسيق الرمز في سطر واحد.
- كيفية تنسيق الرمز في عدة أسطر.
- كيفية استخدام BBCode و HTML لتنسيق الرمز.
- كيفية تعطيل التنسيق التلقائي للرمز.
تنسيق الرمز داخل السطر
لتنسيق الرمز داخل السطر أو النص الخاص، استخدم علامات الاقتباس المفردة (') حول المحتوى الذي تريد تنسيقه.
يمكن أن يكون هذا ضمن نص، أو يمكن أن يكون الرمز في سطر منفصل.
لن يقوم تنسيق الرمز داخل السطر بتطبيق أي تنسيق على الرمز الذي يتم تنسيقه (راجع الأمثلة أدناه)، ولكنه سيستخدم فقط نمط الرمز (“code style”) للرمز الذي يتم تنسيقه.
مثال 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.
تنسيق الرمز في عدة أسطر
بالنسبة للرمز في عدة أسطر، إذا كنت لا تزال تستخدم تنسيق الرمز في سطر واحد، فستكون العملية بأكملها مرهقة للغاية.
خاصة وأن العديد من الرموز تستخدم المسافات للمسافات البادئة.
سيؤثر تنسيق الرمز في سطر واحد باستخدام المسافات على المسافات البادئة لكتلة الرمز بأكملها.
في هذه الحالة، يمكنك استخدام 3 علامات اقتباس مفردة (backticks (```)) كبداية للرمز، ويجب أن تكون علامات الاقتباس المفردة الثلاثة هذه في سطر منفصل.
بالإضافة إلى ذلك، لا يمكن أن تكون هناك مسافات قبل علامات الاقتباس المفردة الثلاثة هذه، وإذا كانت هناك مسافات، فقد لا يتم تنسيق كتلة الرمز.
مثال:
الإدخال:
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 بالكشف التلقائي عن اللغة المستخدمة بناءً على تنسيق الإدخال الخاص بك.
بالطبع، يمكنك أيضًا تحديد اللغة يدويًا لكتلة الرمز، عن طريق إدخال اللغة التي تريد تنسيقها بعد 3 علامات اقتباس مفردة.
``` your_language
# Your code here
مثال:
للغة Ruby:
الإدخال:
``` ruby
3.times do |stuff|
stuff.do
end
**الإخراج:**
```ruby
3.times do |stuff|
stuff.do
end
يجب أن تكون اللغات المدعومة هي اللغات التي تدعم تمييز بناء الجملة highlighted languages.
يمكنك الوصول إلى قائمة اللغات المدعومة على GitHub.
بالطبع، يمكنك استخدام إعداد default code lang لتعيين اللغة الافتراضية.
عدم استخدام تمييز بناء الجملة
إذا كنت لا ترغب في استخدام أي تمييز لبناء الجملة للنص أو كتل الرمز التي تدخلها، فاستخدم text بدلاً من ذلك في قسم اختيار اللغة.
مثال:
الإدخال:
``` text
Your text to NOT highlight here
**الإخراج:**
```text
Your text to NOT highlight here
أفضل الممارسات
- بالنسبة للرمز داخل السطر، استخدم دائمًا علامات الاقتباس المفردة لإحاطة النص الذي تريد تنسيقه.
- إذا كنت تريد مشاركة رمز في عدة أسطر، فقم بتنسيق الرمز.
- بالنسبة للنصوص وسجلات الأخطاء، تجنب استخدام نمط الرمز التلقائي، لأن هذه النصوص غالبًا ما تكون نصًا عاديًا، استخدم التنسيق النصي العادي بينها.
- عندما تلاحظ أن التنسيق التلقائي لم يتعرف على الرمز بشكل صحيح، تذكر تحديد اللغة الصحيحة لرمزك.