انتقل إلى المحتوى الرئيسي

توليد Widget

توليد widget جديد مع ملفات schema والقالب لقالب Qumra الخاص بك.

الاستخدام

qumra gen widget <widget-name>

المعاملات

  • widget-name (مطلوب): اسم widget المراد توليده. يجب أن يكون بأحرف صغيرة مع أحرف وأرقام وشرطات فقط.

الخطوات التفاعلية

  1. اسم Widget: قدم اسم widget كـ argument
  2. اختيار الصفحة: اختر الصفحة لإضافة widget إليها
  3. التأكيد: يتم إنشاء widget وإضافته إلى الصفحة المحددة

ما يتم إنشاؤه

ينشئ الأمر مجلد widget مع ملفين:

widgets/<widget-name>/
├── schema.json # تعريف إعدادات widget
└── widget.njk # قالب widget (Nunjucks)

مثال

$ qumra gen widget product-card

? Select the page to add the widget to:
❯ index.json
product.json
collection.json
cart.json

✅ Widget 'product-card' created and added to 'index.json' successfully.

الملفات المولدة

schema.json:

{
"name": "Product Card",
"settings": {
"title": {
"type": "string",
"label": "Title",
"default": ""
}
}
}

widget.njk:

<div class="widget product-card">
<h2>{{ widget.data.title }}</h2>
<!-- Your widget content here -->
</div>

المتطلبات

  • يجب أن تكون داخل مجلد قالب Qumra (مع .qumra/qumra.config.json)
  • يجب أن يكون اسم widget بأحرف صغيرة مع أحرف وأرقام وشرطات فقط
  • يجب ألا يكون widget موجودًا بالفعل

اصطلاح التسمية

صالحغير صالح
product-cardProductCard
hero-sliderhero_slider
faq-sectionFAQ Section

نصائح

أفضل الممارسات
  • استخدم أسماء وصفية بأحرف صغيرة مع شرطات
  • يجب أن يخدم كل widget غرضًا واحدًا
  • حدد جميع الإعدادات في schema.json قبل بناء القالب
  • استخدم blocks للمحتوى القابل للتكرار (slides, items, FAQs)
بعد التوليد
  1. عدّل schema.json لتحديد إعدادات widget
  2. ابنِ قالب HTML في widget.njk
  3. قم بالوصول إلى الإعدادات باستخدام {{ widget.data.settingName }}
  4. اختبر مع qumra theme dev

استكشاف الأخطاء

خطأ: "Not in a theme directory"

تأكد من أنك داخل مجلد قالب Qumra مع .qumra/qumra.config.json.

خطأ: "Widget name is required"

قدم اسم widget: qumra gen widget <name>

خطأ: "Widget already exists"

استخدم اسمًا مختلفًا أو احذف مجلد widget الموجود أولاً.

خطأ: "Invalid widget name"

يجب أن تكون أسماء widget بأحرف صغيرة مع أحرف وأرقام وشرطات فقط.