توثيق حول توسيع Discourse باستخدام المكونات الإضافية (plugins)، والسمات (themes)، ومكونات السمات (theme components)، والعمل مع الكود الأساسي، واستخدام واجهة برمجة تطبيقات Discourse (Discourse API).
مقدمة
- مقدمة: مقدمة إلى تطوير Discourse
بيئات التطوير
- حاوية التطوير (Dev Container): تطوير Discourse باستخدام حاوية تطوير
- GitHub Codespaces: تطوير Discourse على GitHub Codespaces
- إعداد Docker: تثبيت Discourse للتطوير باستخدام Docker
- إعداد macOS: تثبيت Discourse على macOS للتطوير
- إعداد Ubuntu/Debian: تثبيت Discourse على Ubuntu أو Debian للتطوير
- إعداد Windows: تثبيت Discourse على Windows للتطوير
- المكونات الإضافية غير Docker: تثبيت المكونات الإضافية في بيئة التطوير غير Docker الخاصة بك
- الإعداد المحلي: إعداد بيئة تطوير Discourse محلية؟
- إعداد مواقع متعددة: إعداد بيئة تطوير متعددة المواقع
- إعداد Fedora: إعداد Discourse للتطوير على Fedora Linux
الكود والداخلية
- مكونات Ember: إضافة مكونات Ember إلى Discourse
- التدقيق والتنسيق: التدقيق التلقائي وتنسيق الكود قبل الالتزامات (commits)
- اختبارات القبول: كتابة اختبارات القبول واختبارات المكونات لكود Ember في Discourse
- تشغيل مجموعات الاختبار: كيفية تشغيل مجموعات اختبار QUnit للكود الأساسي والمكونات الإضافية والسمات في Discourse
- توافق الإصدارات: تثبيت إصدارات المكونات الإضافية والسمات للتثبيتات القديمة لـ Discourse (.discourse-compatibility)
- ملكية كائن Ember: ملكية كائن Ember (getOwner، حقن الخدمة، إلخ.)
- أداء JS: استخدام ‘tachometer’ من Google لقياس تغييرات أداء JS في Discourse
- التكامل المستمر مع GitHub Actions: إعداد التكامل المستمر باستخدام GitHub Actions
- ملحقات Markdown: دليل المطور لملحقات Markdown
- تحويل النوافذ المنبثقة: تحويل النوافذ المنبثقة من وحدات التحكم القديمة إلى واجهة برمجة تطبيقات مكون DModal الجديدة
- واجهة برمجة تطبيقات DModal: استخدام واجهة برمجة تطبيقات DModal لعرض نوافذ منبثقة (تسمى popups/dialogs) في Discourse
- واجهة برمجة تطبيقات JS: استخدام واجهة برمجة تطبيقات JS
- موصلات منفذ المكون الإضافي: استخدام موصلات منفذ المكون الإضافي (Plugin Outlet Connectors) من سمة أو مكون إضافي
- modifyClass: استخدام modifyClass لتغيير سلوك الكود الأساسي
- إنشاء المسارات: إنشاء مسارات في Discourse وعرض البيانات
- طريقة المصادقة: إضافة طريقة مصادقة ‘مُدارة’ جديدة إلى Discourse
- التسلسل العرضي لنماذج ActiveRecord: منع التسلسل العرضي لنماذج ActiveRecord
- تجاوز القوالب: (لا يُنصح به) تجاوز قوالب Discourse من سمة أو مكون إضافي
- كائنات الخدمة: استخدام كائنات الخدمة في Discourse
- مواصفات النظام: كتابة مواصفات نظام شاملة لواجهة مستخدم Discourse
- FormKit: مجموعة أدوات Discourse لعرض النماذج.
- مشغلات AppEvents: مرجع مشغلات AppEvents
- المحولات (Transformers): استخدام المحولات لتخصيص القيم والسلوكيات على جانب العميل
- تخصيص قائمة المواضيع: تخصيص قائمة المواضيع
- إرشادات CSS: إرشادات لفئات CSS باستخدام BEM
- التصميم للأجهزة: التصميم لأجهزة مختلفة (حجم منفذ العرض، اللمس/التمرير، إلخ.)
- تلميح النوع والتحقق من صحة JS: تلميح النوع والتحقق من صحة 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) ومكونات السمات (Theme Components)
- تطوير السمات: تطوير سمات Discourse ومكونات السمات
- مرجع سريع: دليل المرجع السريع لمطور السمات
- دليل المصمم: دليل المصمم للبدء باستخدام السمات في Discourse
- منشئ السمات (Theme Creator): ابدأ باستخدام Theme Creator و Theme CLI
- Theme CLI: تثبيت تطبيق وحدة التحكم Theme CLI الخاص بـ Discourse لمساعدتك في بناء السمات
- هيكل السمة: هيكل السمات ومكونات السمات
- ملفات JS متعددة: تقسيم جافاسكريبت السمة إلى ملفات متعددة
- ملفات SCSS متعددة: تقسيم SCSS السمة إلى ملفات متعددة
- إعدادات السمة: إضافة إعدادات إلى سمة Discourse الخاصة بك
- أنواع كائنات لإعدادات السمة: نوع الكائن لإعداد السمة
- ترحيل الإعدادات: ترحيل إعدادات سمة Discourse
- بيانات وصفية للسمة: إضافة بيانات وصفية ولقطات شاشة إلى سمة
- متغيرات الكود الأساسي: استخدام متغيرات الكود الأساسي لـ Discourse في السمة الخاصة بك
- السلاسل القابلة للترجمة: إضافة سلاسل قابلة للترجمة إلى السمات ومكونات السمات
- اختبارات E2E: الاختبار الشامل للنظام (End-to-end system testing) للسمات ومكونات السمات
- تقليل الصيانة: تقليل صيانة تخصيصات السمات
- أحجام الخطوط: تغيير أحجام الخطوط في السمات الخاصة بك
- تضمين الأصول: تضمين الأصول (مثل الصور، الخطوط) في السمات والمكونات
- أيقونات مخصصة: استبدال أيقونات SVG الافتراضية لـ Discourse بأيقونات مخصصة في سمة
- الوضع الداكن: تحديث السمات والمكونات الإضافية لدعم الوضع الداكن التلقائي
- مُعدِّلات السمة (Theme modifiers): مُعدِّلات السمة: مقدمة موجزة
- العناصر الزائفة (Pseudo-elements): إدراج نص أو صور في أي مكان على موقعك باستخدام العناصر الزائفة لـ CSS
- مكون الخط: إنشاء ومشاركة مكون سمة للخط
- لغة Highlight.JS: تثبيت لغة جديدة لـ Highlight.JS عبر مكون سمة
- محتوى الصفحة الرئيسية: إضافة محتوى مخصص يظهر فقط على صفحتك الرئيسية
- تنسيق الرسائل: دعم تنسيق الرسائل للترجمة المحلية
- تغييرات الأيقونات العامة: تغيير الأيقونات على مستوى الموقع
- أيقونات بديلة: أيقونات بديلة
- نمط منشور الويكي: تغيير نمط منشور الويكي
- مخطط الألوان: إنشاء ومشاركة مخطط ألوان
- قائمة التنقل: استخدام معامل الاستعلام
navigation_menuلمعاينة الشريط الجانبي أو الخيارات الأخرى - أنماط محتوى المنشور: تخصيص محتويات المنشورات بأنماطك الخاصة
- لقطات شاشة السمات: إضافة لقطات شاشة معاينة إلى سمات Discourse
- إعدادات الموقع القابلة للسمة: التحكم في إعدادات الموقع باستخدام السمات
أدلة عامة
- وضع العلامة البيضاء لتطبيقات الهاتف المحمول: أشياء يجب مراعاتها قبل اتخاذ قرار بوضع علامة بيضاء لتطبيقات Discourse للهاتف المحمول
- الأتمتة المخصصة: إنشاء أتمتات مخصصة
- تفريغ البيانات العامة: تفريغ البيانات العامة لـ Discourse
- تقييمات الذكاء الاصطناعي: تشغيل تقييمات الذكاء الاصطناعي لـ Discourse
برنامج تعليمي لمطور السمات
- 1 - المقدمة: برنامج تعليمي لمطور السمة: 1. المقدمة
- 2 - السمة البعيدة: برنامج تعليمي لمطور السمة: 2. إنشاء سمة بعيدة
- 3 - CSS: برنامج تعليمي لمطور السمة: 3. CSS في السمات
- 4 - المنافذ (Outlets): برنامج تعليمي لمطور السمة: 4. استخدام المنافذ لإدراج واستبدال المحتوى
- 5 - المكونات: برنامج تعليمي لمطور السمة: 5. بناء واستخدام المكونات
- 6 - واجهة برمجة تطبيقات JS: برنامج تعليمي لمطور السمة: 6. استخدام واجهة برمجة تطبيقات JS
- 7 - الخاتمة: برنامج تعليمي لمطور السمة: 7. الانتهاء