سناب بلوكس

:information_source: الملخص السماح للمستخدمين باستخدام snapblocks في منشوراتهم.
:hammer_and_wrench: رابط المستودع GitHub - snap-blocks/snapblocks-discourse: snapblocks discourse plugin · GitHub
:open_book: دليل التثبيت كيفية تثبيت الإضافات في Discourse

الميزات

Snapblocks هو نسخة مشتقة من scratchblocks تتيح للمستخدمين تحويل النصوص إلى صور لبرامج Snap!. تتيح هذه الإضافة لـ Discourse للمستخدمين استخدام snapblocks في منشوراتهم.

يمكنك إنشاء snapblocks في منشور عن طريق كتابة كود snapblocks داخل وسوم bbcode [snapblocks][/snapblocks]. على سبيل المثال:

[snapblocks]
move (10) steps
[/snapblocks]

يمكنك أيضًا استخدام [scratchblocks][/scratchblocks] كبديل، رغم أنه يمكن تعطيله.

يمكنك أيضًا استخدام [sb][/sb] لإضافة كود snapblocks بشكل مضمن.

استخدم الكتلة [sb]move (10) steps[/sb] للمضي قدمًا.

الخيارات

تتوفر بعض الإعدادات لتغيير طريقة عرض snapblocks.

  • نمط الكتلة
  • مقياس الكتلة
  • التلوين المخطط (Zebra Coloring)
  • التفاف الكتلة
  • إظهار المسافات
  • قبعات سانتا

يمكن استخدام العديد من الخيارات أيضًا في مقتطفات snapblocks.

[snapblocks blockStyle="snap-flat" wrap="true" wrapSize=100 zebra="true" showSpaces="false" santa="true"]
when flag clicked
if <[] = []> {
  forever {
    run ({} @addInput) with inputs [Hello world] @delInput @verticalEllipsis @addInput
  }
}
[/snapblocks]

يمكنك أيضًا تعيين نمط الكتلة باستخدام المعامل الافتراضي.

[snapblocks="snap-flat"]
move (10) steps
[/snapblocks]

التكوين

الاسم الوصف
نمط الكتلة نمط الكتلة الافتراضي. يمكن أن يكون snap، snap-flat، scratch2، scratch3، أو scratch3-hc.
مقياس الكتلة مقياس صورة الكتلة الافتراضي. يجب أن يكون رقمًا عشريًا.
التلوين المخطط إذا كانت كتلتان أو أكثر من نفس اللون، فاستخدم لونًا أفتح بالتناوب.
تفاف الكتلة قم بتفكيك أجزاء الكتلة إلى سطر جديد إذا أصبحت الكتلة عريضة جدًا.
إظهار المسافات إظهار المسافات كنقطة في المدخلات.
بديل Scratchblock تمكين البديل [scratchblocks].

سجل التغييرات

  • 1.5.0
    • تحديث snapblocks إلى الإصدار v1.10.0
    • إصلاح خطأ في تحميل مكتبة snapblocks (كان يُصدر خطأ بسبب «اسم ملف غير صالح»)
  • 1.4.1
    • إصلاح اقتباس مقتطفات الكود متعددة الأسطر
    • اكتشاف ترجمات الكتل فعليًا
  • 1.4.0
    • تحسين اقتباس snapblocks
    • لا يمكن تحديد النص داخل الكتل (رغم أنه لا يزال بإمكانك تحديده فوقها واقتباس البرنامج بالكامل).
  • 1.3.0
    • إضافة خيار «قبعات سانتا» إلى الإعدادات
    • إضافة خيار santa إلى مقتطفات snapblocks
    • تحديث snapblocks إلى الإصدار 1.8.0
  • 1.2.0
    • السماح بتمكين/تعطيل البديل [scratchblocks] (أخيرًا تمكنت من معرفة كيفية القيام بذلك).
    • تحديث snapblocks إلى الإصدار 1.7.0
  • 1.1.1
    • التأكد من إمكانية التمرير للبرامج التي تتجاوز العرض.
    • إضافة نص فعلي عند استخدام زر snapblocks في شريط الأدوات.
  • 1.1.0
    • تحديث snapblocks إلى الإصدار 1.6.0
  • 1.0.0
    • الإصدار الأولي

ما تبقى للقيام به

  • السماح بنمط افتراضي منفصل لـ [scratchblocks]
14 إعجابًا

هل هناك أي عدم توافق مع scratchblocks يشير إلى الحاجة إلى مكون إضافي منفصل لـ Scratch؟

إذا لم يكن الأمر كذلك، فيمكن الإشارة إلى ذلك هنا وفي ملف README الخاص بالمكون الإضافي على GitHub.

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

أعتقد أن عدم التوافق الوحيد هو مجرد بعض التعديلات الطفيفة على الصيغة، مثل القوائم المنسدلة وكتلة التعريف. في الغالب، تتوافق معظم أكواد scratchblocks مع snapblocks.

لا أزال أعتقد أنه يجب أن يكون هناك مكون إضافي منفصل لـ scratchblocks، نظرًا لأنني أعرف أن المنتديات الخاصة بـ scratch/scratch mods قد لا ترغب في استخدام snapblocks، نظرًا لأن snapblocks مصمم للعمل بشكل أفضل مع snap (ولقد قصرت في صقل أنماط scratch)، ناهيك عن أنني لم أضف القدرة على تبديل اختصار شريط الأدوات لاستخدام scratchblocks بدلاً من ذلك.

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

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

يبدو، للوهلة الأولى، أنه لا يوجد اعتراض على استخدام هذه الإضافة للتجارب الأولية (بيئتي هي بيئة مدرسية) ومن ثم فقط استثمار الوقت في إضافة Scratch إذا نشأت الضرورة.

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

طلب ميزة: يمكن تعريف نمط الكتلة بشكل منفصل للاسم المستعار [scratchblocks].
سيسمح هذا بالاستخدام السهل لعناصر Scratch و Snap! ذات الأنماط المختلفة.

إعجابَين (2)

هذه فكرة جيدة في الواقع. سأبحث في إضافة ذلك.

3 إعجابات

لا أرى أي منطق على جانب الخادم، هل يمكن بناء هذا بشكل أفضل كمكون للمظهر؟

3 إعجابات

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

إذًا، هل هناك شيء لم أفهمه فيما يتعلق بقدرات مكون السمة، وهل يمكن أن يكون شيئًا يُفعّل مرة واحدة على مستوى النظام العالمي ثم يُنسى؟

(آسف، ضغطت زر الرد الخطأ @RGJ)

تثبيت إضافة أمر أكثر تعقيدًا بكثير من هذا :thinking: ولن يعمل على خطط Discourse.org المستضافة.

علاوة على ذلك، أعتقد أن معظم المنتديات لا تحتوي إلا على سمة نشطة واحدة.

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

إعجابَين (2)

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

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

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

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

ليس جميع المدراء لديهم وصول إلى سطر الأوامر، وليس جميع المدراء الذين لديهم وصول، على دراية كافية به.

كما يتطلب إعادة بناء، وهي عملية ليست فورية، وقد يكون لها آثار جانبية وقد تؤدي محتملًا إلى مشاكل.

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

إعجابَين (2)

قد أحاول ذلك لاحقًا، حيث لا يوجد حقًا أي منطق في الخلفية.

3 إعجابات

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

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