توثيق حول توسيع Discourse باستخدام الإضافات (Plugins) والقوالب (Themes) ومكونات القوالب (Theme Components)، والعمل مع الكود الأساسي، واستخدام واجهة برمجة تطبيقات Discourse.
المقدمة
- مقدمة: مقدمة إلى تطوير 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
- الفحص والتنسيق (Lint and format): الفحص الآلي وتنسيق الكود قبل الالتزامات (commits)
- اختبارات القبول: كتابة اختبارات القبول واختبارات المكونات لكود Ember في Discourse
- تشغيل مجموعات الاختبارات: كيفية تشغيل مجموعات اختبارات QUnit الأساسية والإضافات والقوالب في Discourse
- توافق الإصدارات: تثبيت إصدارات الإضافات والقوالب لتثبيتات Discourse الأقدم (فرع d-compat)
- ملكية كائنات Ember: ملكية كائنات Ember (getOwner، حقن الخدمات، إلخ)
- أداء JS: استخدام ‘tachometer’ من Google لقياس تغييرات أداء JS في Discourse
- CI باستخدام 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
- تلميح أنواع 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
القوالب والمكونات
- تطوير القوالب: تطوير قوالب Discourse ومكونات القوالب
- مرجع سريع: دليل مرجع سريع لمطوري القوالب
- دليل المصممين: دليل المصمم للبدء مع القوالب في Discourse
- منشئ القوالب: البدء مع منشئ القوالب وواجهة سطر الأوامر للقوالب (Theme CLI)
- واجهة سطر الأوامر للقوالب: تثبيت تطبيق سطر الأوامر لواجهة Discourse Theme CLI لمساعدتك في بناء القوالب
- بنية القوالب: بنية القوالب ومكونات القوالب
- ملفات JS متعددة: تقسيم جافاسكربت القالب إلى ملفات متعددة
- ملفات SCSS متعددة: تقسيم SCSS القالب إلى ملفات متعددة
- إعدادات القالب: إضافة إعدادات إلى قالب Discourse الخاص بك
- كائنات لإعدادات القالب: نوع الكائنات لإعداد القالب
- هجرة الإعدادات: هجرة إعدادات قوالب Discourse
- البيانات الوصفية للقالب: إضافة البيانات الوصفية واللقطات إلى قالب
- المتغيرات الأساسية: استخدام المتغيرات الأساسية في Discourse في قالبك
- النصوص القابلة للتوطين: إضافة نصوص قابلة للتوطين إلى القوالب ومكونات القوالب
- اختبار E2E: اختبار النظام من الطرف إلى الطرف للقوالب ومكونات القوالب
- تقليل الصيانة: تقليل الصيانة على تخصيصات القوالب
- أحجام الخطوط: تغيير أحجام الخطوط في قوالبك
- تضمين الأصول: تضمين الأصول (مثل الصور والخطوط) في القوالب والمكونات
- أيقونات مخصصة: استبدال أيقونات SVG الافتراضية في Discourse بأيقونات مخصصة في قالب
- الوضع الداكن: تحديث القوالب والإضافات لدعم الوضع الداكن التلقائي
- معدلات القالب: معدلات القالب: مقدمة موجزة
- العناصر الزائفة: إدراج نصوص أو صور في أي مكان على موقعك باستخدام العناصر الزائفة في CSS
- مكوّن الخط: إنشاء ومشاركة مكوّن خط للقوالب
- لغة Highlight.JS: تثبيت لغة جديدة لـ Highlight.JS عبر مكوّن قالب
- محتوى الصفحة الرئيسية: إضافة محتوى مخصص يظهر فقط على صفحتك الرئيسية
- تنسيق الرسائل: دعم تنسيق الرسائل للتوطين
- تغييرات الأيقونات العامة: تغيير الأيقونات عالمياً
- أيقونات بديلة: أيقونات بديلة
- نمط منشورات الويكي: تغيير نمط منشور الويكي
- مخطط الألوان: إنشاء ومشاركة مخطط ألوان
- قائمة التنقل: استخدام معامل الاستعلام
navigation_menuلمعاينة الشريط الجانبي أو خيارات أخرى - أنماط محتوى المنشورات: تخصيص محتوى المنشورات بأنماطك الخاصة
- لقطات القوالب: إضافة لقطات معاينة لقوالب Discourse
- إعدادات الموقع القابلة للتخصيص: التحكم في إعدادات الموقع باستخدام القوالب
الأدلة العامة
- وضع علامة بيضاء على تطبيقات الجوال: أشياء يجب مراعاتها قبل اتخاذ قرار بوضع علامة بيضاء على تطبيقات Discourse للجوال
- أتمتة مخصصة: إنشاء أتمتة مخصصة
- إخراج البيانات العامة: إخراج البيانات العامة لـ Discourse
- تقييمات الذكاء الاصطناعي: تشغيل تقييمات الذكاء الاصطناعي لـ Discourse
شروحات تطوير القوالب
- 1 - المقدمة: شروحات مطور القوالب: 1. المقدمة
- 2 - القالب البعيد: شروحات مطور القوالب: 2. إنشاء قالب بعيد
- 3 - CSS: شروحات مطور القوالب: 3. CSS في القوالب
- 4 - المنافذ: شروحات مطور القوالب: 4. استخدام المنافذ لإدراج واستبدال المحتوى
- 5 - المكونات: شروحات مطور القوالب: 5. بناء واستخدام المكونات
- 6 - واجهة برمجة تطبيقات JS: شروحات مطور القوالب: 6. استخدام واجهة برمجة تطبيقات JS
- 7 - الخاتمة: شروحات مطور القوالب: 7. الختام