توليد Widget
توليد widget جديد مع ملفات schema والقالب لقالب Qumra الخاص بك.
الاستخدام
qumra gen widget <widget-name>
المعاملات
- widget-name (مطلوب): اسم widget المراد توليده. يجب أن يكون بأحرف صغيرة مع أحرف وأرقام وشرطات فقط.
الخطوات التفاعلية
- اسم Widget: قدم اسم widget كـ argument
- اختيار الصفحة: اختر الصفحة لإضافة widget إليها
- التأكيد: يتم إنشاء 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-card | ProductCard |
hero-slider | hero_slider |
faq-section | FAQ Section |
نصائح
أفضل الممارسات
- استخدم أسماء وصفية بأحرف صغيرة مع شرطات
- يجب أن يخدم كل widget غرضًا واحدًا
- حدد جميع الإعدادات في
schema.jsonقبل بناء القالب - استخدم blocks للمحتوى القابل للتكرار (slides, items, FAQs)
بعد التوليد
- عدّل
schema.jsonلتحديد إعدادات widget - ابنِ قالب HTML في
widget.njk - قم بالوصول إلى الإعدادات باستخدام
{{ widget.data.settingName }} - اختبر مع
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 بأحرف صغيرة مع أحرف وأرقام وشرطات فقط.