Koyarwar Nunjucks

Macros da aka zana a sabar don Eleventy, Express ko kowane bututun samfurin Node — hanyar salon GOV.UK, tare da kundin Lily da ƙugiyoyin aji.

Abin da za ka gina

Ƙaramin fom na tuntuɓa da aka zana a sabar — fili mai lakabi, maɓallin aikawa, sifili nauyin JavaScript — da farko ba tare da tsari ba, sannan da tsari, cikin kusan mintuna 10.

Kafin ka fara

Kana buƙatar git, Node 22 ko sabo, da pnpm 10 ko sabo. Kowane bututun Nunjucks yana aiki — Eleventy, Express ko Nunjucks mai sauƙi.

Mataki na 1 — Ɗauki lambar

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

Kowane abu kundin adireshi ne a cikin components/ mai macro.njk, gwajinsa da takardunsa — misali components/button/macro.njk. Nuna mai ɗora Nunjucks ɗinka zuwa components/ (a Eleventy, ƙara shi zuwa hanyar includes) kuma shigo da abin da kake buƙata.

Mataki na 2 — Abu na farko naka

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

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

Yana nuna <button class="button" type="submit">Save</button>. Macros suna ɗaukar abu params ɗaya: text (an kauce) ko html (ɗanye), type, label don aria-labelda mai ƙara ƙugiyar aji.

Mataki na 3 — Haɗa ƙaramin fom

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

Saboda komai ana zana shi a sabar, mai bincike yana karɓar HTML mai ma'ana tsantsa da ƙugiyoyin aji — nauyin JavaScript na bytes sifili.

Duba aikinka: loda shafin kuma fom ɗin yana kama da maras tsari — daidai kamar yadda aka nufa: tsarin yana nan gaba. Danna Tab: mayar da hankali yana ratsa kowane abin sarrafawa, ana sanar da lakabin, kuma aikawa yana aiki. An gama halayyar; kamannin naka ne kuma shi ne mataki na gaba.

Mataki na 4 — Ba shi tsari

Ba ƙugiyoyin tsari — .button, .text-input, .label, .field — a takardar salonka, ko haɗa jigon da aka shirya a tsarin tushenka:

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

Mataki na 5 — Kalli komai yana aiki

App ɗin misali na Nunjucks + Eleventy yana gina cikakken kundin a matsayin shafin tsaye mai shafukan nuni ga kowane abu:

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

Matakai na gaba

Tambayoyi a hanya? Shafin taimako cike yake da amsoshi — kuma idan wani mataki zai iya zama mafi bayyana, gaya mana kuma za mu gyara koyarwar da farin ciki.