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 ও কিবোর্ড।
পথে প্রশ্ন আছে? সহায়তা পাতা উত্তরে ভরা — আর কোনো ধাপ আরও পরিষ্কার হতে পারলে, আমাদের জানান আর আমরা খুশি মনে টিউটোরিয়াল উন্নত করব।