🏷️

Pug

لغة قوالب HTML مختصرة (HTML Template Engine)

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

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

⚡ متوسط 🚀 محترف 🏢 مؤسسي
🔗 زيارة الموقع الرسمي
3
تقييم المستخدمين
التصنيف 🏷️ HTML
المشاهدات 5
تاريخ الإضافة 02/07/2026
آخر تحديث 02/07/2026

📖 الوصف

Pug (سابقاً Jade) هي لغة قوالب عالية المستوى تُترجم إلى HTML. تستخدم المسافات البادئة (Indentation) بدلاً من الوسوم المغلقة، مما يؤدي إلى كود أنظف وأقصر بكثير من HTML التقليدي. تدعم Pug المتغيرات، التكرار (loops)، الشروط (conditionals)، والوراثة (Inheritance) مما يجعلها مثالية لبناء صفحات ويب دينام...

🎯 يستخدم في

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

بناء قوالب HTML معقبة (Node.js/Express)

توليد HTML ثابت (Static Site Generators)

كتابة صفحات بسرعة أكبر

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

بنية نظيفة ومشروعة

المميزات

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

كود مختصر جداً - أقل كتابة بكثير من HTML

المسافات البادئة تفرض بنية نظيفة

Supports الوراثة (Template Inheritance)

Includes وMixins لإعادة الاستخدام

تصفية (Filters) للمحتوى: Markdown

CoffeeScript

تكامل ممتاز مع Express.js

دعم JavaScript داخل القوالب

توليد HTML نظيف وقابل للقراءة

⚠️ العيوب

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

×

منحنى تعلم لإتقان البنية بالمسافات

×

خطأ واحد في المسافات يفسد كل شيء

×

أخطاء غير واضحة عندما يكون هناك مشاكل في البنية

×

بعض المطورين يفضلون رؤية HTML الحقيقي

×

مجتمع أصغر من Handlebars/Nunjucks

×

لا تدعم JSX/React مباشرة

🔄 البدائل

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

Handlebars
Nunjucks
EJS
Haml

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

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

Example Code
//- ملف layout.pug - القالب الأساسي
doctype html
html(lang="ar" dir="rtl")
  head
    meta(charset="UTF-8")
    meta(name="viewport" content="width=device-width, initial-scale=1.0")
    title #{pageTitle}
    link(rel="stylesheet" href="/css/style.css")
  body
    header
      nav
        each link in navigation
          a(href=link.url)= link.text
    main
      block content
    footer
      p جميع الحقوق محفوظة #{new Date().getFullYear()}

//- ملف index.pug -extends
extends layout

block content
  .container
    h1= pageTitle

    //- التكرار
    ul.users
      each user in users
        li.user-card(class=user.active ? 'active' : '')
          img(src=user.avatar alt=user.name)
          h3= user.name
          p= user.email

    //- الشروط
    if users.length > 10
      p.text-muted يظهر #{users.length} مستخدم

    //- Mixin قابل لإعادة الاستخدام
    mixin button(text, type='primary')
      a.btn(class=`btn-${type}` href=attributes.href)= text

    +button('عرض المزيد')(href="/more")

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

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