Nunjucks ट्यूटोरियल
Eleventy, Express या किसी भी Node टेम्पलेट पाइपलाइन के लिए सर्वर-रेंडर मैक्रो — Lily के कैटलॉग और क्लास हुक के साथ GOV.UK-शैली का तरीक़ा।
आप क्या बनाएँगे
एक छोटा सर्वर-रेंडर संपर्क फ़ॉर्म — लेबल वाला क्षेत्र, सबमिट बटन, शून्य 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
अगले चरण
- थीम — झिलमिलाहट-रहित SSR थीम बदलाव के लिए Eleventy कुकी पैटर्न सहित।
- वरीयता सहायक — भाषा और पाठ का आकार।
- घटक कैटलॉग — हर घटक के लिए गुण, ARIA और कीबोर्ड।
रास्ते में सवाल हैं? सहायता पृष्ठ उत्तरों से भरा है — और अगर कोई चरण और स्पष्ट हो सकता है, हमें बताएँ और हम खुशी से ट्यूटोरियल सुधारेंगे।