Nunjucksi õpetus

Serveris renderdatud makrod Eleventy, Expressi või mis tahes Node'i malli-torustiku jaoks — GOV.UK stiilis lähenemine Lily kataloogi ja klassikonksudega.

Mida sa ehitad

Väike serveris renderdatud kontaktivorm — sildiga väli, saatmisnupp, null JavaScripti koormust — esmalt paljas, seejärel kujundatud, umbes 10 minutiga.

Enne alustamist

Vaja on gitti, Node 22 või uuemat ja pnpm 10 või uuemat. Sobib iga Nunjucksi torustik — Eleventy, Express või lihtne Nunjucks.

Samm 1 — Hangi kood

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

Iga komponent on kaust asukohas components/ koos macro.njk, selle testi ja dokumentatsiooniga — näiteks components/button/macro.njk. Suuna oma Nunjucksi laadija asukohta components/ (Eleventys lisa see includes-teele) ja impordi, mida vajad.

Samm 2 — Sinu esimene komponent

{% from "components/button/macro.njk" import button %}

{{ button({ text: "Save", type: "submit" }) }}

Renderdab <button class="button" type="submit">Save</button>. Makrod võtavad ühe params-objekti: text (paojadega) või html (toores), type, label elemendile aria-labelja klassikonksu lisaja.

Samm 3 — Kombineeri väike vorm

{% 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>

Kuna kõik renderdatakse serveris, saab brauser puhast semantilist HTML-i koos klassikonksudega — null baiti JavaScripti koormust.

Kontrolli oma tööd: laadi leht ja vorm paistab paljas — täpselt nagu ette nähtud: kujundamine on alles ees. Vajuta Tab: fookus liigub läbi iga juhtelemendi, silt kuulutatakse ette ja saatmine töötab. Käitumine on valmis; välimus on sinu ja järgmine samm.

Samm 4 — Kujunda see

Kujunda konksud — .button, .text-input, .label, .field — oma laadilehes või lingi valmis teema oma baaspaigutuses:

<link rel="stylesheet" href="/themes/united-kingdom-government-digital-service.css" />

Samm 5 — Vaata kõike töötamas

Nunjucks + Eleventy näiterakendus ehitab kogu kataloogi staatilise saidina komponendi kohta demolehtedega:

git clone https://github.com/LilyDesignSystem/lily-design-system
cd lily-design-system/lily-design-system-nunjucks-eleventy-examples
pnpm install && pnpm run dev

Järgmised sammud

Küsimusi teel? Abileht on täis vastuseid — ja kui mõni samm saaks olla selgem, anna meile teada ja me parandame õpetust hea meelega.