أنا أحاول كتابة أولى الإضافات الأساسية جدًا الخاصة بي على Discourse، بعد قراءة الكثير عن Ruby والمزايا التي تقدمها اللغة لنا
أريد إضافة نص إلى صفحات معينة مثل الشارات (badges)، ولوحة الصدارة (leaderboard - gamification) وتعديلات بسيطة مماثلة مثل تغيير السلوك الافتراضي لنتائج ترتيب البحث، آخر المشاركات بدلاً من الأهمية.
أتفهم أن النهج الأفضل هو تجنب عمل fork للنواة وكتابة الإضافات. لذا، أين يمكنني البحث إذا أردت تغيير ملفات معينة في Discourse من إضافة؟
يمكننا أخذ مثال على تعديل هذا الملف:
كيف أخبر Discourse باستخدام الإضافة topic_embed.rb واستبدال الافتراضي؟
هناك الكثير من المواد الموجودة هنا. فقط انظر إلى كل العشرات من الإضافات الموجودة.
إليك مثال على تجاوز نظام onebox:
لاحظ أن التصحيح يمكن أن يكون مستهدفًا وذكيًا للغاية (هذه الإضافة ليست كذلك بشكل خاص! ولكن هذا يرجع جزئيًا إلى بنية هذا الكود الأساسي الذي يجعل التجاوزات مطولة بالضرورة) وفنها هو القيام بأقل قدر ممكن للحصول على التأثير المطلوب: إذا كنت تقترح تجاوز ملفات كاملة فقد ترغب في إعادة التفكير في نهجك العام.
ومرة أخرى، وفقًا لريتشارد، فأنت تقريبًا لا تتجاوز الملفات بأكملها أبدًا (في Ruby on Rails على الأقل). تحتاج إلى التفكير في الأساليب.