Nunjucks ट्युटोरियल
Eleventy, Express किंवा कोणत्याही Node टेम्पलेट पाइपलाइनसाठी सर्व्हर-रेंडर मॅक्रो — Lily च्या कॅटलॉग आणि क्लास हुकसह GOV.UK-शैलीचा दृष्टिकोन.
तुम्ही काय बनवाल
एक छोटा सर्व्हर-रेंडर संपर्क फॉर्म — लेबल असलेले क्षेत्र, सबमिट बटण, शून्य JavaScript भार — आधी साधा, मग शैलीबद्ध, सुमारे १० मिनिटांत.
सुरू करण्यापूर्वी
तुम्हाला git, Node 22 किंवा नवीन, आणि pnpm 10 किंवा नवीन लागेल. कोणतीही Nunjucks पाइपलाइन चालेल — Eleventy, Express किंवा साधे Nunjucks.
पायरी १ — कोड मिळवा
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 मार्गात जोडा) आणि हवे ते आयात करा.
पायरी २ — तुमचा पहिला घटक
{% 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आणि एक क्लास हुक जोडणारा.
पायरी ३ — एक छोटा फॉर्म बनवा
{% 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: फोकस प्रत्येक नियंत्रणातून जातो, लेबल जाहीर होते आणि सबमिट चालते. वर्तन पूर्ण आहे; देखावा तुमचा आहे आणि पुढची पायरी आहे.
पायरी ४ — त्याला शैली द्या
हुकना शैली द्या — .button, .text-input,
.label, .field — तुमच्या स्टाइलशीटमध्ये, किंवा तुमच्या मूळ लेआउटमध्ये तयार थीम लिंक करा:
<link rel="stylesheet" href="/themes/united-kingdom-government-digital-service.css" />
पायरी ५ — सगळे चालताना पहा
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 आणि कीबोर्ड.
वाटेत प्रश्न आहेत? मदत पृष्ठ उत्तरांनी भरलेले आहे — आणि एखादी पायरी अधिक स्पष्ट करता आली तर, आम्हाला सांगा आणि आम्ही आनंदाने ट्युटोरियल सुधारू.