إلى أي مدى يمكننا دفع Discourse في التخصيص؟

أنا مهتم بمعرفة مدى إمكانية تخصيص Discourse، ليس فقط الواجهة، بل أيضاً إعادة ترتيب العناصر وإضافة ميزات جديدة، وما إلى ذلك، دون أن يتسبب ذلك في تعطيل أي من هذه الوظائف عند تحديث Discourse (أو على الأقل، لا يحدث ذلك كثيراً)؟

أحب كل شيء في Discourse، لكن هناك بعض الأشياء التي أعرف أنني سأريد في النهاية تنفيذها أو تغييرها. أود أن يكون لدي تطبيق جوال خاص بي، بدلاً من الاعتماد على تطبيق Discourse. شيء أكثر تخصيصاً ومخصصاً لمجتمعي.

أيضاً، لا يعجبني أن الهواتف المحمولة القديمة تعرض نص Times New Roman القبيح ونسخة من Discourse مقصوصة جداً. أفهم أن الأمور تتقدم، لكنني أتساءل عما إذا كان يجب علينا حقاً العودة إلى ذلك المظهر القبيح لإظهار أن شيئاً ما لم يعد مدعوماً؟ وتعطيل الوصول إلى ميزات قد لا تكون موجودة بعد الآن، وهي ضرورية لمجتمع ما؟

أريد أيضاً تخصيص أشياء أخرى ليست مجرد واجهة، وتنفيذ ميزات جديدة، وإعادة ترتيب العناصر، وما إلى ذلك. بشكل أساسي، استخدام قاعدة البيانات ومعظم “الهيكل” الخاص بـ Discourse، وجعله قريباً قدر الإمكان من طريقتي الخاصة، بدلاً من أن أشعر بأن “هذا مجرد منتديات Discourse أخرى، بألوان مختلفة”.

أعتقد أنه يمكن تخصيص الكثير عبر المكونات والإضافات، وما إلى ذلك، لكنني أتساءل ما هي الحدود؟ خاصة عندما يتعلق الأمر بالأشياء التي تتعطل عند تحديث Discourse؟

هذا بالضبط ما أفعله الآن، وكوني قادمة من خلفية ووردبريس لمدة 15 عامًا، يشبه الأمر الرجوع بالزمن إلى الوراء. ومع ذلك، بدأت أتعلم بعض الأشياء بمساعدة شات جي بي تي المخيف، وأجد أنه ليس صعبًا للغاية إذا فهمت جيت هب (GitHub) وتتمكن من تعديل الملفات واستخدام CSS وما إلى ذلك.

نعم، أعمل مع Git/Github ولدي فهم “أساسي” لكيفية عمل الأشياء (كنت أتعلم المزيد في الآونة الأخيرة لأنني أبني أشياء أخرى على الجانب). أعتقد أنه يمكن القيام بالكثير، لكن هناك دائمًا ذلك التحدي: ما نبنيه مقابل إصدار Discourse XYZ اليوم، يمكن أن يتعطل غدًا عند التحديث، وهو أمر محبط، خاصة إذا كنت غير مدرك لما انكسر…

لذا، فإن تخصيص الحد الأدنى يبدو أكثر أمانًا، لكن ليس “مميزًا” كما هو الحال. إنه مسألة تحديد أيهما أكثر قيمة، أعتقد.

هل تستخدم ChatGPT أم Codex؟ كنت أستخدم Claude Code CLI في Github Codespaces وهو أمر سهل! وبسبب أنني أحفظ كل ما أريد أن يفعله Claude، وكيف يتصرف، إلخ، في ملف CLAUDE.md، فهو نادرًا ما يهذي، أو على الأقل، ليس بقوة. ذلك الملف يزداد نموًا كلما وجدت أشياء جديدة أريد أن يفعلها Claude/لا يفعلها.

يجب أن تكون هناك سطر واحد من CSS في سمة لتغيير ذلك.

كثير جدًا طالما أنك تستخدم نقاط التوسيع الموجودة.

هل رأيت المواقع على Discourse customers | Discourse - Civilized Discussion و https://discover.discourse.com/، مثل Epic Developer Community Forums و https://community.robotime.com/ ؟

لأكون صادقاً، لقد التقيت من كلود لأنه لم يكن ينشئ صوراً ولم يتوافق بشكل جيد مع OPEN Router، ولأنني كان لدي العديد من الاشتراكات، فإلغيت جميعها باستثناء GPT.

لقد ذكرت ذلك فقط كجزء من التغيير العام من منصة كانت تعمل بشكل جيد، إلى أن توقفت عن العمل فجأة، أو على الأقل لم تعد تعمل كما كانت من قبل. بدأت أتجنب زيارة المنتديات التي تستخدم Discourse بسبب ذلك. أعلم أنني بحاجة إلى تحديث هاتفي في النهاية، لكن هذا الهاتف لا يزال يعمل، لذلك…

هذا يبدو لطيفًا جدًا: https://forums.unrealengine.com/
تم حفظه في ملاحظاتي للإشارة إليه لاحقًا. شكرًا!
هناك بعض المنتديات الأخرى التي تبدو مثيرة للاهتمام، لكنني دائمًا أشعر أنني أعرف أنها تستخدم Discourse. أعلم أنني أفكر كثيرًا بدلاً من البناء، لكنني كنت أتساءل فقط إلى أي مدى يمكننا تخصيصها فعليًا؟ كما قلت، أعتقد أنه يمكن فعل الكثير، خاصة عندما يتعلق الأمر بواجهة المستخدم. أتساءل عما إذا كانت الميزات ستكون على ما يرام عند تحديث Discourse؟ يجب أن أقوم ببعض الاختبارات.

نبوءة تحقق ذاتي هنا :slight_smile:

نادراً ما أحتاج إلى الصور، لذلك لم يكن هذا مشكلة بالنسبة لي. وفي المرات القليلة جداً التي احتجت فيها، كنت أطلب من ChatGPT. في 50% من الحالات، اعتماداً على ما أطلبه، لا أحصل أبداً على شيء قريب حتى من ما أريده في ذهني، لذلك ينتهي بي الأمر إلى القيام بذلك بنفسي في فوتوشوب.

ولكن كان Claude Code مساعدة كبيرة بالنسبة لي. سريع جداً.

إذا كان ChatGPT يناسب ما تفعله، فهو بالتأكيد الأداة المناسبة. طالما أنه يعمل، فهذا هو المهم.

ليس أني أعتقد أن Discourse يبدو سيئًا، بل إنني أريد فقط المزيد من طريقتي الخاصة فيه، حتى عندما يتعلق الأمر بكيفية تنظيمه، وكيفية تنفيذ بعض الميزات وعرضها.

مرة أخرى، ربما أفرط في التفكير، لكنني بحاجة بالتأكيد إلى إجراء بعض الاختبارات لمعرفة كيف ستسير الأمور.

أعتقد أنه عالق في الماضي فيما يتعلق بالعديد من السمات وغيرها، وقد كنت قد اشتكيت من هذا بالفعل قبل فترة

المشكلة الأخرى هي أن المنتديات ستبدو متشابهة لأن هذا هو طبيعتها - قائمة من العناوين. انظر إلى فيسبوك وريدت وإكس. جميع بطاقات الموضوعات فيها تبدو متشابهة إلى حد ما.

لستُ خبيراً، لكن من وجهة نظري، يمكن تخصيص Discourse بشكل كبير. وليس هذا فحسب، بل يبدو أن المطورين يبتكرون باستمرار طرقاً جديدة وأسهل لتخصيصه. كما يبدو أن Discourse حريص على تقديم تحذيرات عندما ستكون هناك تغييرات قد تؤثر على التعديلات التي قام بها المستخدمون.

توجد إمكانيات لإنشاء شيء أكثر من «مجرد منتدٍ آخر لـ Discourse بألوان مختلفة»، وأنا في الواقع مندهش من الكمية الهائلة التي يمكن تغييرها باستخدام فقط مكونات السمات والإضافات التي يوفرها فريق التطوير الرسمي. وكما سيخبرك فريق الدعم، كل شيء في الواجهة متاح عبر واجهة برمجة التطبيقات (API)، مما يعني أنه إذا أردت «استخدام قاعدة البيانات ومعظم «الهيكل العظمي» لـ Discourse»، فلا يوجد أي مانع أمامك.

مع كل ما قيل… أعجبني أفكارك التي ذكرتها في الموضوع الآخر حول بناء المجتمع والمشاركة وإتاحة مساحة للناس للتشارك. هذا هو الأساس لما أحاول فعله. لقد ذكرت أيضاً أنك موسيقي، وموسيقي ربما يستمتع بتطوير البرمجيات. بمجرد أن تبني موقعاً ويب مخصصاً بالكامل، ستتحمل مسؤولية صيانته، وستتعرض بعض الأشياء (المتعلقة بـ Discourse وغيرها) للأعطال، وستضطر إلى بذل وقتك الخاص أو دفع أموال لشخص لإصلاحها.

أنشئ بعض المواضيع الجديدة. استخدم فكرة واحدة فقط في كل موضوع. أخبر المنتدى بما تريده واطلب اقتراحات حول كيفية تحقيق فكرتك. تقسيم الأمور إلى ميزات فردية سيساعد الناس على العصف الذهني لإيجاد الحلول، لكنه سيعطيك أيضاً نهجاً أكثر تنظيماً ويساعدك على تحديد هدفك بوضوح أكبر.

تصفح ask.discourse.org

فهو ذكاء اصطناعي مُصمم خصيصاً لـ Discourse

و… لا تأخذ هذا كإهانة، بل اعتبره نصيحة حول قيمة وقتك الخاص، ففكر في توظيف مطور محترف. هناك عدة مطورين يتواجدون في هذا المنتدى، وقسم «السوق» (Marketplace) مخصص خصيصاً لمثل هذه الاستفسارات، حيث يمكنك تقديم فكرتك ويمكن للمطورين تقديم عروضهم لتنفيذ العمل.

نعم، أقول دائماً أنه يمكن فعل كل شيء، بطريقة أو بأخرى، عندما يتعلق الأمر بأي شيء رقمي. لذلك أعتقد أنني بحاجة إلى إجراء بعض الأبحاث في هذا الشأن والتقدم خطوة بخطوة. أعتقد أن الخطوة التالية هي إعادة استضافة منتدي Discourse الخاص بي. كان لديّ مثبتاً في مرحلة ما، لكنني قررت لاحقاً إخفاءه حتى أكون مستعداً للتركيز عليه حقاً.

نعم، منذ عام 2001 تقريباً. ولكن في الآونة الأخيرة، وبمساعدة Claude Code بشكل خاص، تمكنت من إنشاء أدوات مفيدة لنفسي، وأخيراً نشر بعضها للآخرين أيضاً.
لا أحاول أن أصبح مطوراً أو أن أنفق الكثير على هذا الأمر، لكنه بالتأكيد شيء أستمتع به. يمكن أن يكون الإبداع المستمر مرهقاً جداً. وجود شيء ثنائي مثل البرمجيات، يكون مجزياً للغاية.

[quote=“Andrew_Rowe, post:11, topic:408829”]
لا تأخذ الأمر كإهانة، بل خذ هذا كنصيحة بشأن قيمة وقتك، وفكر في توظيف مطور محترف.
[/quote]\nلم أشعر بالإهانة على الإطلاق. أي ملاحظات تكون قيّمة. وأوافق على أن أحد الأشياء التي أحللها بشكل متزايد هو مقدار قيمة وقتي، بحيث لا أنفقه في القيام بأشياء معينة وأوظف شخصاً آخر، وما الذي أستمتع بفعله حقاً، بغض النظر عن الوقت والجهد. هذا هو السبب في أن تطوير أدوات جديدة كان مجزياً جداً بالنسبة لي. إنه في الواقع وقت أستمتع فيه برؤية الأشياء تتحول إلى واقع، لذلك لا يكون وقتاً ضائعاً أبداً.

نعم، أصبح الإنترنت عامًا جدًا. أعتقد أن معظم ذلك يعود إلى إعطاء الأولوية للوظيفة بدلاً من الأسلوب. ليس أن أرى مشكلة في ذلك، لكن امتلاك شيء فريد من نوعه مهم أيضًا.

وأوافق على موضوعك الآخر. هناك الكثير من المجال للنمو مع Discourse. شيء أحبه في Discourse هو أنه يبدو حقًا كمنصة نامية، مع تفاعل الفريق هنا، ومشاركة خارطة الطريق معنا، إلخ. إنه ليس مثل المنصة المعقمة حيث لا أحد يعرف ما يحدث. وهذا شيء أقدّره كثيرًا هنا.

بالتأكيد، إنها واحدة من أفضل منصات الخلفية التي استخدمتها على الإطلاق.

هناك قيود قليلة جداً.唯一的限制是模板无法被覆盖,你需要使用插件出口(Plugin Outlets)向现有视图添加新内容。话虽如此,结合一些 CSS 通常就能完成任务。

你可以创建新路由,并完全控制这些路由的布局。

后端更加灵活。

因此,尽可能使用官方 API,重构工作将更为有限,但你永远无法完全消除维护工作。

期望零维护是不合理的……只需看看我的 GitHub 账号和一些流行的扩展,你就会看到大量标有“COMPATIBILITY: ”的提交 :slight_smile:

维护一个用于测试升级并查看自定义内容是否损坏的预发布服务器(staging server)是良好的实践——网站越定制化,对某种预发布实例的需求就越大——尽管使用开发实例也会有所帮助。

من الصعب القول إن التخصيص “آمن” دون معرفة التفاصيل… ولكن بشكل عام، كلما زاد تخصيصك، زادت الصيانة التي ستحتاج إلى القيام بها.

إذا أضفت شيئًا مثل مكون مخصص إلى منفذ إضافة أو استبدلت مكون Discourse بالكامل… بشكل عام، يجب أن يستمر العمل لأنك تقوم بتضمين رمز مخصص في نقطة توسيع (ونحن نحاول الحفاظ على هذه النقاط لأن الكثير من الناس يستخدمونها).

في CSS، يجب أن تستخدم --variables الموجودة لتغيير الأشياء wherever possible لأننا أحيانًا نحتاج إلى تغيير هيكل المحتوى، ولكن حتى إذا فعلنا ذلك، يمكننا إعادة استخدام نفس المتغيرات.

إذن هذا هو المسار الأكثر أمانًا:

.d-header {
   --title-color--header: red;
}

هذا أقل أمانًا:

.d-header {
    .extra-info-wrapper .topic-link {
      color: red;
    }
}

لقد كنا ندفع المنصة بعيدًا عن طرق التخصيص القديمة التي كانت أكثر عرضة للتلف، مثل تجاوز القوالب واستخدام modifyClass. نحن أيضًا نعمل على واجهات برمجة تطبيقات أكثر استقرارًا… ولكن كل شيء سيحتاج إلى بعض الصيانة من حين لآخر.

شكرًا على الملاحظات.
أعتقد أنني بحاجة إلى التفكير بجدية في خادم البيئة التجريبية (staging server). إنه نهج جيد بالتأكيد.

في الوقت الحالي، أعتقد أن الخطوة الأولى هي تثبيت Discourse مرة أخرى، وإنشاء المحتوى، وعندما يحين الوقت، البدء بالأشياء السهلة التي لا تتطلب تغييرات كبيرة ويمكن إنجازها باستخدام المكونات (Components). سأرى مدى التقدم الذي يمكنني تحقيقه بذلك. بعد ذلك، سأبدأ في التفكير في خادم البيئة التجريبية.

شكرًا!

نصيحتك بشأن المتغيرات قيّمة حقًا.
أعتقد أنني بحاجة فقط لأجلس في يوم ما، وأقوم بإعداد قائمة بكل الأشياء التي أريد تغييرها أو تنفيذها، ثم أعمل على كل شيء على حدة، بدءًا من تلك التي يمكن تعديلها عبر المكونات (Components)، لأرى مدى ما يمكنني الوصول إليه.

هذا صحيح بالفعل،

أقوم حاليًا بإجراء هندسة استقرار منهجية لـ Discourse،

وقد استخدمت بعض مكونات السمات وكتبتُ بعض مكونات السمات بنفسي للتخصيص، وذلك لتلبية العادات الثقافية لمستخدمي المحليين.