🏷️ مميز

Handlebars

محرك قوالب منطقي (Logic-less Template Engine)

(4/5)
👁️ 6 مشاهدة
📅 02 Jul 2026
🌐 عام

مستوى الخبرة المطلوب:

🔗 زيارة الموقع الرسمي
4
تقييم المستخدمين
التصنيف 🏷️ HTML
المشاهدات 6
تاريخ الإضافة 02/07/2026
آخر تحديث 02/07/2026

📖 الوصف

Handlebars هو محرك قوالب يعتمد على وسيوس (Mustache) ولكنه يضيف ميزات إضافية مثل Helpers والمسارات المركبة. صُمم ليكون "بلا منطق" (Logic-less) - لا يمكنك تنفيذ كود تعسفي داخل القوالب، بل تستخدم Helpers للعمليات المعقدة. Handlebars يعمل على العميل (Browser) والخادم (Node.js, PHP, Java, وغيرها). يُستخ...

🎯 يستخدم في

مجالات استخدام هذه الأداة

بناء قوالب صفحات الويب (Rendering)

قوالب البريد الإلكتروني

توليد ملفات ثابتة (Static Files)

تخصيص محتوى ديناميكي

أنظمة CMS والمدونات

المميزات

أبرز مميزات هذه الأداة

بسيط وسهل التعلم - syntax واضح

"Logic-less" - فصل منطق عن عرض

Helpers مخصصة للتخصيص

Works على العميل والخادم

جزئيات (Partials) لإعادة الاستخدام

آمنة - لا تنفيذ كود تعسفي

مجتمع كبير ومكتبات مساعدة

أداء جيد في القوالب المعقدة

⚠️ العيوب

نقاط يجب مراعاتها

×

"Logic-less" قد يكون محدوداً - لا شروط معقدة

×

Helpers قد تكون معقدة للكتابة

×

لا يملك وراثة قوية مثل Nunjucks/Pug

×

أخطاء في القوالب قد تكون غامضة

×

لا يدعم asynchronous helpers بسهولة

×

مسارات مركبة قد تكون مربكة

🔄 البدائل

أدوات بديلة يمكنك استخدامها

Mustache
Nunjucks
EJS
Liquid

💻 مثال على الاستخدام

كيفية استخدام هذه الأداة

Example Code
<!-- القالب -->
<div class="user-profile">
  <h1>{{user.name}}</h1>
  <p class="email">{{user.email}}</p>

  <!-- التكرار -->
  <ul class="skills">
    {{#each user.skills}}
      <li>{{this}}</li>
    {{/each}}
  </ul>

  <!-- الشروط -->
  {{#if user.isPremium}}
    <span class="badge">عضو مميز</span>
  {{else}}
    <span class="badge">عضو عادي</span>
  {{/if}}

  <!-- Helpers -->
  <p>{{formatDate user.createdAt "YYYY-MM-DD"}}</p>
  <p>{{toUpperCase user.name}}</p>

  <!-- Partials -->
  {{> userCard user=activeUser class="highlighted"}}

  <!-- مسارات مركبة -->
  {{user.address.city}}
  {{../company.name}}
</div>

<!-- Partials - ملف _userCard.hbs -->
<div class="user-card {{class}}">
  <h3>{{user.name}}</h3>
  <p>{{user.email}}</p>
</div>

<!-- JavaScript -->
<script>
// تسجيل Helpers
Handlebars.registerHelper('formatDate', function(date, format) {
  return new Date(date).toLocaleDateString();
});

Handlebars.registerHelper('toUpperCase', function(str) {
  return str.toUpperCase();
});

// استخدام القالب
const template = Handlebars.compile(document.querySelector('#template').innerHTML);
const html = template({
  user: {
    name: 'أحمد محمد',
    email: 'ahmed@example.com',
    isPremium: true,
    skills: ['JavaScript', 'React', 'Node.js'],
    address: { city: 'القاهرة' },
    createdAt: '2024-01-15'
  }
});

document.querySelector('#output').innerHTML = html;
</script>

📚 أدوات أخرى في HTML

قد يعجبك أيضاً