Οδηγός 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 μηδέν byte.

Ελέγξτε τη δουλειά σας: φορτώστε τη σελίδα και η φόρμα φαίνεται γυμνή — ακριβώς όπως προβλέπεται: η μορφοποίηση έρχεται μετά. Πατήστε 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

Επόμενα βήματα

Ερωτήσεις στην πορεία; Η σελίδα βοήθειας είναι γεμάτη απαντήσεις — και αν ένα βήμα μπορεί να γίνει πιο σαφές, πείτε μας και θα βελτιώσουμε με χαρά τον οδηγό.