Pāriet uz saturu

Direktīva @source

@source atrodas jūsu ievadē CSS. Tās inline() formas pievieno vai noņem klašu kandidātus un darbojas visur. Ceļu formas norāda veidņu failus, kuros meklēt klašu nosaukumus; failus pārmeklē tikai CLI, un pašlaik tajā netiek lietoti norādītie ceļi (skatiet Ceļu izmantošana).

CSS
@import "tailwindcss";
@source "./templates";

@source direktīvas tiek nolasītas kompilēšanas laikā un izņemtas no izvades — tās nekad neparādās ģenerētajā CSS. Ceļi jāliek pēdiņās; var izmantot gan vienpēdiņas, gan dubultpēdiņas.

Ceļi, glob izteiksmes un noliegums

Ceļa formā var norādīt direktoriju, glob izteiksmi vai noliegtu ceļu, un direktīvas tiek uzkrātas:

CSS
@source "./templates";              /* a directory */
@source "./components/**/*.php";    /* a glob */
@source not "./templates/legacy";   /* an exclusion */

Ceļu izmantošana

Kompilators ieraksta katru ceļa direktīvu masīva sources sarakstā, ko atgriež TailwindPHP\compile(), kā ['base' => …, 'pattern' => …, 'negated' => …], kur base vērtība tiek ņemta no kompilēšanas opcijas base. Tas pats failus nelasa.

  • tw::generate(), tw::compile() un TailwindCompiler kompilē tikai jūsu nodoto saturu. Ceļu direktīvas tur neietekmē rezultātu.
  • CLI nolasa sources, taču pašreizējā laidienā tas rekursīvi pārmeklē ievades faila direktoriju katram nenoliegtajam ceļam neatkarīgi no ceļa vai glob izteiksmes, bet pilnībā ignorē not ceļus, tāpēc tie neko neizslēdz (#8). Sadaļā Ko pārmeklē CLI ir sīkāka informācija un pašlaik piemērots izkārtojums.

Iekļaujamie kandidāti

@source inline(...) iekļauj klases izvadē pat tad, ja pārmeklētajos failos tās nekad neparādās — noder klašu nosaukumiem, kas tiek dinamiski veidoti izpildlaikā:

CSS
@source inline("flex p-4 m-2");

Iekļaujamie kandidāti atbalsta arī variantus:

CSS
@source inline("hover:bg-blue-500 focus:ring-2");

Figūriekavu izvēršana

Iekļaujamie raksti izvērš figūriekavu grupas, ļaujot īsi uzskaitīt daudzus kandidātus:

CSS
@source inline("p-{1,2,4}");
/* Generates p-1, p-2, and p-4 */

@source inline("text-{red,blue}-500");
/* Generates text-red-500 and text-blue-500 */

Ignorētie iekļaujamie kandidāti

@source not inline(...) darbojas pretēji inline() — tā izvada svītro atbilstošos kandidātus pat tad, ja tie atrasti jūsu saturā. Arī šeit darbojas figūriekavu izvēršana:

CSS
@source not inline("legacy");
@source not inline("p-{1,2}");

Validācijas noteikumi

@source ir priekšraksts, nevis bloks. Kompilators noraida:

  • Direktīvu ar pamatdaļu — @source cannot have a body.
  • Ligzdotu direktīvu (piemēram, @media iekšienē) — @source cannot be nested.
  • Ceļu bez pēdiņām — @source paths must be quoted.
CSS
/* Invalid — throws "`@source` cannot have a body." */
@source "./src" {
    .some-style { color: red; }
}

/* Invalid — throws "`@source` paths must be quoted." */
@source ./src;

Failos balstītām būvēm skatiet CLI, bet Importi — lai atrisinātu @import un virtuālos moduļus.