عرض تغييرات الكود والتعليقات

هذا سؤال يتعلق بما إذا كانت هذه الميزة موجودة (ربما كإضافة) أم أنها طلب لميزة جديدة في حال عدم وجودها…

ما أبحث عنه هو القدرة على عرض شيء مثل هذا داخل مناقشات منتدى Discourse:

ليس مجرد عرض جزء من كود مع تمييز بناء الجملة الخاص باللغة (لدينا هذه الميزة بالفعل من خلال البدء بـ php</kbd>، على سبيل المثال، وإنهائه بـ <kbd>).

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

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

يمكنك عرض الاختلافات بهذا الشكل:

سطر عادي
- سطر محذوف
+ سطر مضاف

```diff
سطر عادي
- سطر محذوف
+ سطر مضاف
```
6 إعجابات

حسناً… هذا يبدو رائعاً

هل توجد طريقة لدمج ذلك مع تمييز بناء الجملة المحدد لكل لغة؟

يبدو الكود مملًا للغاية بدونه، ومذهلاً للغاية معه.

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

3 إعجابات

همم :thinking:

إذن، لديهم هذا مقتطف gist هنا، وما يقترحونه هو أن يقوم الناس بتنفيذه خارج أداة التمييز (في هذه الحالة، هي marked.js، وأظن أنه يمكن فعل الشيء نفسه مع highlight.js).

هل تعتقد أن Discourse يمكنه فعل ذلك؟ أم، سؤال سابق، هل هذا منطقي من حيث البنية المعمارية؟

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

إعجاب واحد (1)

من الممكن بالتأكيد، لكنني لا أعتقد أن الأمر سيكون سهلاً. فكل تمييز بناء الجملة يتم عبر JavaScript، لذا يمكن التلاعب به باستخدام مكون السمة.

إعجاب واحد (1)

كيف جعلتها ملونة؟

Type out the code block like this:

```diff
A normal line
- removed line
+ added line
```

Specifying diff as the syntax means that you can use + and - at the beginning of lines to highlight them green and red.

3 إعجابات
سطر عادي
- سطر محذوف
+ سطر مضاف

نجحت! شكراً لك @david

إعجابَين (2)

سأستخدم بنية diff من الآن فصاعدًا، فهي مفيدة.

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

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

ما الذي تغير، وأين، ومن قام بالتغيير؛ إلى ماذا أشير؛ وأي تعليق مفيد يشرح علاقة الكود بالمكان الذي يُنشر فيه، وما إلى ذلك.

شكرًا للجميع على مشاركتهم في هذه المناقشة.

إعجاب واحد (1)

ربما بديل؟

<del>del</del> 
<ins>ins</ins> 

del
ins

4 إعجابات