API-ul Web Fonts propus nu vine la WordPress 5.9, posibil să ajungă mai întâi în Gutenberg

Publicat: 2021-11-12

După ceea ce părea a fi un shoo-in pentru WordPress 5.9, un API de font web propus a fost pus în așteptare. Caracteristica ar standardiza modul în care dezvoltatorii de teme și pluginuri încarcă fonturile și ar pune bazele pentru viitoarele funcții orientate către utilizatori.

Jono Alderson a deschis un bilet pentru film în februarie 2019. În ultimele luni, propunerea a crescut rapid. Solicitarea de extragere a avut peste 200 de mesaje în bilet, 93 de comiteri și aprobare de cod de la doi committeri de bază. API-ul părea gata. Cu toate acestea, s-a oprit în ultimele zile.

Andrew Ozz, un dezvoltator principal WordPress, a oprit în esență posibilitatea aterizării noului API în 5.9. El a declarat că nu crede că propunerea este gata pentru WordPress.

„Numai ca cod, arată bine”, a scris el în bilet. „Este foarte bine documentat (mulțumesc [Tonya Mark]!). Cu toate acestea, încă nu văd cum ar face acest lucru WordPress mai bun pe termen scurt și lung. Am discutat cu [Andrei Drăgănescu] și el a sugerat că în mod ideal ar fi trebuit să fie un plugin de funcții, și sunt de acord. Atunci ar fi fost posibil să-l testați cu adevărat în producție, să verificați (sau să respingeți) ipotezele care au fost făcute în timpul creării acestuia și să îl faceți într-un plus cu adevărat demn pentru WordPress. Din păcate, este prea târziu pentru asta acum pentru 5.9.”

Una dintre problemele legate de testarea pluginurilor cu funcții pentru API-uri este că acestea nu sunt adesea adoptate, așa cum au menționat alții în bilet. Dezvoltatorii nu s-ar baza pe ei în producție în majoritatea cazurilor. Și, utilizatorul final mediu nu ar instala ceva specific dezvoltatorilor.

„Sugerarea ca acest lucru să fie făcut ca un plugin de caracteristici este o modalitate elegantă de a întârzia ceva cu câțiva ani”, a spus Ari Stathopoulos, unul dintre dezvoltatorii din spatele API-ului. Cu toate acestea, el a subliniat că API-ul REST este o excepție care a funcționat suficient de bine pentru a fi portat în WordPress.

Propunerea de bază WordPress va fi probabil introdusă în plugin-ul Gutenberg pentru explorare ulterioară. Acesta ar fi un fel de compromis între lansarea ca un plugin de caracteristici separat și intrarea în WordPress 5.9.

API-ul fonturilor web nu are legătură directă cu sistemul de blocare. Atât temele tradiționale, cât și cele bloc, precum și pluginurile, ar putea folosi această funcție astăzi. Cu toate acestea, mai multe propuneri Gutenberg se bazează pe existența API-ului, cum ar fi permiterea autorilor de teme să definească fonturi web prin fișierele lor theme.json .

Ozz a enumerat mai multe întrebări în legătură cu propunerea și mai mulți dezvoltatori au răspuns la fiecare. Cu toate acestea, argumentul său principal s-a bazat pe caracterul practic de ce era necesar totul din API, afirmând că răspunsurile anterioare au fost „în principiu” și păreau să se bazeze pe presupuneri.

La cel mai elementar nivel, API-ul pentru fonturi web le-ar permite dezvoltatorilor să înregistreze și să încarce fonturi găzduite local sau cele de la Fonturi Google. Dezvoltatorii ar putea adăuga, de asemenea, furnizori personalizați în afara celor două valori implicite. Prima iterație a API-ului propus a fost mai mult despre stabilirea unei baze pe care să se construiască în viitoarele versiuni WordPress.

Atractia caracteristicii nu este doar încărcarea fonturilor. Din punct de vedere tehnic, autorii de teme ar putea face asta cu o singură linie de cod dacă doresc. Patru linii de cod dacă ar dori să urmeze standardele actuale de bază ale WordPress, cel puțin pe front end.

Stathopoulos a zguduit o listă de îmbunătățiri pe care un astfel de API le-ar aduce WordPress și extensiilor sale.

  • Temele ar putea defini fonturile prin fișierele lor theme.json .
  • Previzualizări ale fonturilor în selectorul familiei de fonturi din editor.
  • Se afișează greutăți și stiluri de font valide pentru o familie de fonturi.
  • Performanță îmbunătățită pentru front-end.
  • Localizare pe server pentru performanță și confidențialitate mai bune.

Aceasta a fost o mică mostră a argumentelor în favoarea includerii API-ului în WordPress de bază.

„Există multe îmbunătățiri în Gutenberg care sunt în limbo, în așteptarea unui API pentru fonturi web”, a scris Stathopolous în bilet. „A nu avea un API pentru fonturi web este un blocant în acest moment. Nu este un articol bun de a avea în lista noastră de dorințe, este o cerință pentru a merge mai departe.”

În prezent, niciun standard nu se referă în mod specific la fonturile web din WordPress. Autorii de teme se folosesc de funcțiile existente pentru a pune în coadă o foaie de stil terță parte sau una personalizată cu reguli @font-face . Aceasta a fost în general o practică acceptată în comunitatea de autori de teme de-a lungul anilor.

Cu toate acestea, mulți au acceptat-o ​​cu poftă. Mai mulți au creat scripturi personalizate pentru a ușura punctele dure. Mulți alții doar copiază orice metodă pe care o folosește cea mai recentă temă implicită WordPress.

Unul dintre obiective este acela de a face astfel încât dezvoltatorii să nu fie nevoiți să facă toată munca suplimentară implicată de încărcarea fonturilor web. Chiar nu ar trebui să fie nevoie de o temă pentru a afla cum să le încărcați atât în ​​editor, cât și în front-end, să gestionați preîncărcarea sau să țineți cont de localizare. Pe măsură ce temele îmbătrânesc și API-urile terță parte, cum ar fi Google Fonts, nu ar fi nevoie să se actualizeze temele dacă WordPress se ocupă de asta sub capotă.

Problema cum să încărcați cel mai bine fonturile web se înmulțește atunci când adăugați pluginuri în amestec. În general, temele fac toată munca grea când vine vorba de design. Cu toate acestea, unele pluginuri sar în acea parte a lumii WordPress pentru a adăuga opțiuni de stil suplimentare. Nu există nicio modalitate de a rezolva conflictele atunci când încărcați mai multe copii ale aceluiași font. Nici nu există modalități sigure de a dezactiva fonturile unei teme și de a le înlocui prin plugin.

Un astfel de autor de plugin-uri mi-a trimis un e-mail pentru a-mi anunța știrile pe care le știam deja. API-ul fonturilor web părea să nu mai aterizeze în WordPress 5.9. Dezvoltatorul se pregătea să lanseze un nou site web și serviciu pe lângă noua caracteristică. Aveau chiar și o mascota. De acum, s-ar putea să trebuiască doar să aștepte.

Termenul limită de înghețare a funcțiilor a fost acum două zile. Prin urmare, este puțin probabil ca API-ul fonturilor web să fie adăugat înapoi la etapa de referință WordPress 5.9. Poate dezvoltatorii îl vor vedea când aterizează 6.0. Poate că împingerea acestuia la pluginul Gutenberg îi dă un plus de viață, permițând contribuitorilor să avanseze cu noi funcții care se bazează pe el.