توثيق حول توسيع Discourse باستخدام الإضافات (Plugins) والسمات (Themes) ومكونات السمات (Theme Components)، والعمل مع الكود الأساسي، واستخدام واجهة برمجة تطبيقات Discourse.
المقدمة
- مقدمة: مقدمة إلى تطوير Discourse
بيئات التطوير
- حاوية التطوير (Dev Container): تطوير Discourse باستخدام حاوية التطوير
- مساحات أكواد GitHub (GitHub Codespaces): تطوير Discourse على مساحات أكواد GitHub
- إعداد Docker: تثبيت Discourse للتطوير باستخدام Docker
- إعداد macOS: تثبيت Discourse على macOS للتطوير
- إعداد Ubuntu/Debian: تثبيت Discourse على Ubuntu أو Debian للتطوير
- إعداد Windows: تثبيت Discourse على Windows للتطوير
- إضافات غير Docker: تثبيت الإضافات في بيئة التطوير الخاصة بك غير المعتمدة على Docker
- إعداد محلي: إعداد بيئة تطوير Discourse محلية؟
- إعداد متعدد المواقع (Multisite): إعداد بيئة تطوير متعددة المواقع
- إعداد Fedora: إعداد Discourse للتطوير على Fedora Linux
الكود والتفاصيل الداخلية
- مكونات Ember: إضافة مكونات Ember إلى Discourse
- مجموعة أدوات الواجهة (UI kit): مجموعة أدوات الواجهة المكونة من مكونات ومساعدات وتعديلات Discourse المشتركة
- التدقيق والتنسيق (Lint and format): التدقيق الآلي وتنسيق الكود قبل عمليات الإرسال
- اختبارات القبول: كتابة اختبارات القبول واختبارات المكونات لكود Ember في Discourse
- تشغيل مجموعات الاختبارات: كيفية تشغيل مجموعات اختبارات QUnit الأساسية والإضافات والسمات في Discourse
- توافق الإصدارات: تثبيت إصدارات الإضافات والسمات لتثبيتات Discourse الأقدم (فروع d-compat)
- ملكية كائنات Ember: ملكية كائنات Ember (getOwner، حقن الخدمات، إلخ)
- أداء JavaScript: استخدام ‘tachometer’ من Google لقياس تغييرات أداء JavaScript في Discourse
- التكامل المستمر مع GitHub Actions: إعداد التكامل المستمر باستخدام GitHub Actions
- امتدادات Markdown: دليل المطور لامتدادات Markdown
- تحويل النوافذ المنبثقة: تحويل النوافذ المنبثقة من وحدات التحكم القديمة إلى واجهة برمجة تطبيقات DModal المكونة الجديدة
- واجهة برمجة تطبيقات DModal: استخدام واجهة برمجة تطبيقات DModal لعرض نوافذ منبثقة (المعروفة أيضًا بالنوافذ المنبثقة/حوارات) في Discourse
- واجهة برمجة تطبيقات JS: استخدام واجهة برمجة تطبيقات JS
- موصلات مخرجات الإضافات: استخدام موصلات مخرجات الإضافات من سمة أو إضافة
- modifyClass: استخدام modifyClass لتغيير السلوك الأساسي
- إنشاء المسارات: إنشاء المسارات في Discourse وعرض البيانات
- طريقة المصادقة: إضافة طريقة مصادقة “مُدارة” جديدة إلى Discourse
- التسلسل العرضي العرضي لكائنات ActiveRecord: منع التسلسل العرضي العرضي لكائنات ActiveRecord
- تجاوز القوالب: (غير موصى به) تجاوز قوالب Discourse من سمة أو إضافة
- كائنات الخدمة: استخدام كائنات الخدمة في Discourse
- مواصفات النظام: كتابة مواصفات نظام من طرف إلى طرف لواجهة مستخدم Discourse
- FormKit: مجموعة أدوات Discourse لعرض النماذج.
- محفزات AppEvents: مرجع محفزات AppEvents
- محولات (Transformers): استخدام المحولات لتخصيص القيم والسلوك على جانب العميل
- تخصيص قائمة المواضيع: تخصيص قائمة المواضيع
- إرشادات CSS: إرشادات لفئات CSS باستخدام BEM
- تلميح الأنواع والتحقق من JavaScript: تلميح الأنواع والتحقق من JavaScript (typescript)
- التصميم للأجهزة: التصميم لأجهزة مختلفة (اللمس والتحويم)
- التصميم لعرض عرض متجاوب: التصميم لعرض عرض متجاوب (نقاط الانكسار، نافذة العرض والحاويات)
- بدائيات الإيماءات: بدائيات السحب، تغيير الحجم، والإيماءات
- تقسيم الحزم: تقسيم الحزم للإضافات
الإضافات (Plugins)
- إضافة أساسية: تطوير إضافات Discourse - الجزء 1 - إنشاء إضافة أساسية
- مخرج الإضافة: تطوير إضافات Discourse - الجزء 2 - الاتصال بمخرج الإضافة
- إعدادات الموقع: تطوير إضافات Discourse - الجزء 3 - إضافة إعدادات موقع مخصصة
- إعداد Git: تطوير إضافات Discourse - الجزء 4 - إعداد git
- واجهة الإدارة: تطوير إضافات Discourse - الجزء 5 - إضافة واجهة إدارة
- اختبارات القبول: تطوير إضافات Discourse - الجزء 6 - إضافة اختبارات القبول
- نشر إضافتك: تطوير إضافات Discourse - الجزء 7 - نشر إضافتك
- لغات جديدة: إضافة لغة جديدة من الإضافة
- تكامل الدردشة: إضافة مزود جديد إلى discourse-chat-integration
- امتداد markdown-it: إعادة تغليف امتداد markdown-it كإضافة Discourse
- التحميل التلقائي في Rails: هيكلية الإضافة للتحميل التلقائي في Rails
السمات والمكونات (Themes & Components)
- تطوير السمات: تطوير سمات Discourse ومكونات السمات
- مرجع سريع: دليل مرجع سريع لمطوري السمات
- دليل المصممين: دليل المصمم للبدء مع السمات في Discourse
- منشئ السمات (Theme Creator): البدء مع منشئ السمات وواجهة سطر الأوامر الخاصة بالسمات (Theme CLI)
- واجهة سطر الأوامر الخاصة بالسمات (Theme CLI): تثبيت تطبيق سطر الأوامر الخاص بسمات Discourse لمساعدتك في بناء السمات
- هيكلية السمات: هيكلية السمات ومكونات السمات
- ملفات JS متعددة: تقسيم JavaScript الخاص بالسمات إلى ملفات متعددة
- ملفات SCSS متعددة: تقسيم SCSS الخاص بالسمات إلى ملفات متعددة
- إعدادات السمات: إضافة إعدادات إلى سمة Discourse الخاصة بك
- كائنات لإعدادات السمات: نوع الكائنات لإعداد السمة
- ترحيل الإعدادات: ترحيل إعدادات سمات Discourse
- البيانات الوصفية للسمات: إضافة البيانات الوصفية ولقطات الشاشة إلى السمة
- متغيرات النواة: استخدام متغيرات Discourse الأساسية في سمتك
- نصوص قابلة للتوطين: إضافة نصوص قابلة للتوطين إلى السمات ومكونات السمات
- اختبار E2E: اختبار النظام من طرف إلى طرف للسمات ومكونات السمات
- تقليل الصيانة: تقليل الصيانة على تخصيصات السمات
- أحجام الخطوط: تغيير أحجام الخطوط في سماتك
- تضمين الأصول: تضمين الأصول (مثل الصور والخطوط) في السمات والمكونات
- أيقونات مخصصة: استبدال أيقونات SVG الافتراضية في Discourse بأيقونات مخصصة في السمة
- الوضع الداكن: تحديث السمات والإضافات لدعم الوضع الداكن التلقائي
- محولات السمات: محولات السمات: مقدمة موجزة
- العناصر الزائفة (Pseudo-elements): إدراج نصوص أو صور في أي مكان في موقعك باستخدام العناصر الزائفة في CSS
- مكوّن الخط: إنشاء ومشاركة مكوّن سمة للخط
- لغة Highlight.JS: تثبيت لغة جديدة لـ Highlight.JS عبر مكوّن سمة
- محتوى الصفحة الرئيسية: إضافة محتوى مخصص يظهر فقط في صفحتك الرئيسية
- تنسيق الرسائل: دعم تنسيق الرسائل للتوطين
- تغييرات الأيقونات العامة: تغيير الأيقونات بشكل عام
- أيقونات بديلة: أيقونات بديلة
- نمط منشور ويكي: تغيير نمط منشور ويكي
- مخطط الألوان: إنشاء ومشاركة مخطط ألوان
- قائمة التنقل: استخدام معامل الاستعلام
navigation_menuلمعاينة الشريط الجانبي أو خيارات أخرى - أنماط محتوى المنشورات: تخصيص محتوى المنشورات بأنماطك الخاصة
- لقطات شاشة السمات: إضافة لقطات شاشة للمعاينة إلى سمات Discourse
- إعدادات الموقع القابلة للتخصيص: التحكم في إعدادات الموقع عبر السمات
الأدلة العامة
- تسمية التطبيقات المحمولة: أشياء يجب مراعاتها قبل اتخاذ قرار بتسمية تطبيقات Discourse المحمولة
- أتمتة مخصصة: إنشاء أتمتة مخصصة
- تفريغ البيانات العامة: تفريغ البيانات العامة لـ Discourse
- تقييمات الذكاء الاصطناعي: تشغيل تقييمات الذكاء الاصطناعي لـ Discourse
- روبوت الذكاء الاصطناعي عبر API: استخدام روبوت الذكاء الاصطناعي عبر واجهة برمجة تطبيقات Discourse
شروحات تطوير السمات
- 1 - المقدمة: شرح مطور السمات: 1. المقدمة
- 2 - سمة عن بُعد: شرح مطور السمات: 2. إنشاء سمة عن بُعد
- 3 - CSS: شرح مطور السمات: 3. CSS في السمات
- 4 - المخرجات: شرح مطور السمات: 4. استخدام المخرجات لإدراج واستبدال المحتوى
- 5 - المكونات: شرح مطور السمات: 5. بناء واستخدام المكونات
- 6 - واجهة برمجة تطبيقات JS: شرح مطور السمات: 6. استخدام واجهة برمجة تطبيقات JS
- 7 - الخاتمة: شرح مطور السمات: 7. الخاتمة