دليل Nunjucks
ماكرو معروضة على الخادم لـ Eleventy أو Express أو أي خط قوالب في Node — نهج بأسلوب GOV.UK، مع فهرس Lily وخطّافات الأصناف.
ما الذي ستبنيه
نموذج اتصال صغير معروض على الخادم — حقل بتسمية، زر إرسال، صفر حمولة JavaScript — عاريًا أولًا ثم منسَّقًا، في نحو 10 دقائق.
قبل أن تبدأ
تحتاج إلى git وNode 22 أو أحدث وpnpm 10 أو أحدث. يصلح أي خط Nunjucks — Eleventy أو Express أو Nunjucks العادي.
الخطوة 1 — احصل على الشيفرة
git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-nunjucks-headless
pnpm install
pnpm test # vitest rendering every macro
كل مكوّن مجلد في components/ مع
macro.njkواختباره ووثائقه — مثلًا
components/button/macro.njk. وجّه محمِّل Nunjucks لديك إلى
components/ (في Eleventy أضفه إلى مسار includes) واستورد ما تحتاجه.
الخطوة 2 — مكوّنك الأول
{% from "components/button/macro.njk" import button %}
{{ button({ text: "Save", type: "submit" }) }}
يعرض <button class="button" type="submit">Save</button>. تأخذ الماكرو كائن params واحدًا: text (مُهرَّب) أو
html (خام)، type, label لـ
aria-labelومُلحِق خطّاف صنف.
الخطوة 3 — ركّب نموذجًا صغيرًا
{% from "components/form/macro.njk" import form %}
{% from "components/label/macro.njk" import label %}
{% from "components/text-input/macro.njk" import textInput %}
{% from "components/button/macro.njk" import button %}
<form class="form" method="post">
<div class="field">
{{ label({ for: "name", text: "Full name" }) }}
{{ textInput({ id: "name", name: "name", required: true }) }}
</div>
{{ button({ text: "Save", type: "submit" }) }}
</form>
ولأن كل شيء يُعرض على الخادم، يتلقى المتصفح HTML دلاليًا خالصًا بخطّافات الأصناف — حمولة JavaScript بصفر بايت.
تحقق من عملك: حمّل الصفحة فيبدو النموذج بسيطًا — تمامًا كما هو مقصود: التنسيق لا يزال قادمًا. اضغط Tab: ينتقل التركيز عبر كل عنصر تحكم، وتُعلن التسمية، ويعمل الإرسال. السلوك مكتمل؛ والمظهر لك وهو الخطوة التالية.
الخطوة 4 — نسِّقه
نسِّق الخطّافات — .button, .text-input,
.label, .field — في ورقة الأنماط لديك، أو اربط سمة جاهزة في تخطيطك الأساسي:
<link rel="stylesheet" href="/themes/united-kingdom-government-digital-service.css" />
الخطوة 5 — شاهد كل شيء يعمل
تطبيق المثال Nunjucks + Eleventy يبني الفهرس الكامل موقعًا ساكنًا بصفحات عرض لكل مكوّن:
git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-nunjucks-eleventy-examples
pnpm install && pnpm run dev
الخطوات التالية
- السمات — بما فيه نمط ملفات تعريف الارتباط في Eleventy لتبديل سمة SSR دون وميض.
- مساعدات التفضيلات — اللغة وحجم النص.
- فهرس المكوّنات — الخصائص وARIA ولوحة المفاتيح لكل مكوّن.
أسئلة في الطريق؟ صفحة المساعدة مليئة بالإجابات — وإن أمكن توضيح خطوة أكثر، أخبرنا وسنحسّن الدليل بكل سرور.