أنا أكتب مكونًا للسمة وأود تزيين/تعديل المنشورات قبل طهيها. كيف يمكنني الوصول إلى النص/المنشور غير المطبوخ (للمنشور الذي على وشك أن يُطهى/يُعرض)؟
قرأت “دليل المطورين لمواضيع Discourse” ووجدت أنه يمكنني تعديل المنشور المطبوخ باستخدام دوال pluginAPI مثل decorateCooked/decorateCookedElement و addPostTransformCallback، لكنني لم أجد كيفية الحصول عليه قبل أن يُطهى.
إذا كنت ترغب في تنفيذ ذلك كقالب، فإن هذا هو خيارك الوحيد. إدخال المستخدم (Markdown) → معالجة من جانب الخادم بلغة Ruby → (HTML) استرجاعه من قبل مستخدمين آخرين وإمكانية تزيينه. هذه هي الوظيفة التي سيتم استدعاؤها قبل الضغط على زر الحفظ/الرد. لن تظهر في المسودات، لكنك محق في أنها ستظهر إذا قمت بتحرير المنشور. إذا أردت تجاوز ذلك، فعليك التراجع عن التغييرات التي تجريها عند الحفظ عندما يفتح المحرر أو ينتقل إلى المنشور الذي عدلته. يمكنني الدخول في مزيد من التفاصيل، أو يمكنك ببساطة قراءة الكود وإجراء تجاربك الخاصة.
تحياتي!
تعديل: لقد فكرت للتو في هذا. نظريًا، يمكنك أيضًا إعادة المعالجة من جانب العميل. لكني أعتقد أن ذلك فكرة سيئة من حيث الأداء ولأسباب أخرى. أو يمكنك ببساطة إنشاء إضافة: (Superseded) Plugin Tutorial #1 - How to manipulate the text in the composer?