Proponowany interfejs API czcionek internetowych nie trafia do WordPressa 5.9, prawdopodobnie najpierw ląduje w Gutenberg

Opublikowany: 2021-11-12

Po tym, co wydawało się być atakiem na WordPressa 5.9, zaproponowany interfejs API czcionek internetowych został wstrzymany. Ta funkcja ujednoliciłaby sposób, w jaki twórcy motywów i wtyczek ładują czcionki i kładą podwaliny pod przyszłe funkcje skierowane do użytkowników.

Jono Alderson otworzył bilet na tę funkcję w lutym 2019 r. W ostatnich miesiącach propozycja nabrała tempa. Żądanie ściągnięcia zawierało ponad 200 komunikatów w bilecie, 93 zatwierdzenia i zatwierdzenie kodu od dwóch głównych osób zatwierdzających. API wydawało się gotowe. Jednak w ciągu ostatnich kilku dni utknął w martwym punkcie.

Andrew Ozz, wiodący programista WordPress, zasadniczo powstrzymał możliwość pojawienia się nowego API w wersji 5.9. Stwierdził, że jego zdaniem propozycja nie była gotowa na WordPress.

„Wygląda dobrze jak kod” – napisał na bilecie. „Jest to naprawdę dobrze udokumentowane (dzięki [Tonya Mark]!). Jednak nadal nie widzę, jak poprawiłoby to WordPress na krótką i dłuższą metę. Rozmawialiśmy z [Andrei Draganescu] i zasugerował, że idealnie powinna to być wtyczka funkcji, z czym się zgadzam. Wtedy można by go naprawdę przetestować w środowisku produkcyjnym, zweryfikować (lub odrzucić) założenia, które zostały przyjęte przy jego tworzeniu i uczynić z niego naprawdę godny dodatek do WordPressa. Niestety jest już na to za późno na 5.9.”

Jednym z problemów związanych z testowaniem wtyczek funkcji dla interfejsów API jest to, że nie są one często stosowane, jak zauważyli inni w zgłoszeniu. Deweloperzy w większości przypadków nie polegaliby na nich w produkcji. A przeciętny użytkownik końcowy nie zainstalowałby czegoś specyficznego dla programistów.

„Sugerowanie, że należy to zrobić jako wtyczkę funkcji, jest eleganckim sposobem na opóźnienie czegoś o kilka lat” – powiedział Ari Stathopoulos, jeden z programistów stojących za API. Wskazał jednak, że REST API jest jednym z wyjątków, który działał wystarczająco dobrze, aby został przeniesiony do WordPressa.

Podstawowa propozycja WordPressa zostanie prawdopodobnie przeniesiona do wtyczki Gutenberg w celu dalszej eksploracji. Byłby to rodzaj kompromisu między uruchomieniem jako osobna wtyczka funkcji a przejściem do WordPress 5.9.

Interfejs API czcionek internetowych nie jest bezpośrednio powiązany z systemem blokowym. Zarówno motywy tradycyjne, jak i blokowe, a także wtyczki, mogą dziś korzystać z tej funkcji. Jednak kilka propozycji Gutenberga opiera się na istnieniu interfejsu API, na przykład umożliwianie autorom motywów definiowanie czcionek internetowych za pomocą ich plików theme.json .

Ozz wymienił kilka pytań dotyczących propozycji i kilku deweloperów odpowiedziało na każde z nich. Jednak jego główny argument opierał się na praktyczności, dlaczego wszystko w API było konieczne, stwierdzając, że wcześniejsze odpowiedzi były „w zasadzie” i wydawały się opierać na założeniach.

Na najbardziej podstawowym poziomie interfejs API czcionek internetowych umożliwiłby programistom rejestrowanie i ładowanie czcionek hostowanych lokalnie lub czcionek z Google Fonts. Deweloperzy mogą również dodawać niestandardowych dostawców poza tymi dwoma domyślnymi. Pierwsza iteracja proponowanego interfejsu API polegała bardziej na stworzeniu podstaw, na których można będzie budować w przyszłych wydaniach WordPressa.

Atrakcyjność tej funkcji to nie tylko ładowanie czcionek. Technicznie rzecz biorąc, autorzy motywów mogliby to zrobić za pomocą jednej linii kodu, gdyby chcieli. Cztery linijki kodu, jeśli chcą przestrzegać aktualnych podstawowych standardów WordPressa, przynajmniej jeśli chodzi o interfejs.

Stathopoulos wygłosił listę ulepszeń, które takie API wprowadzi do WordPressa i jego rozszerzeń.

  • Motywy mogą definiować czcionki za pomocą plików theme.json .
  • Podglądy czcionek w selektorze rodziny czcionek w edytorze.
  • Pokazywanie prawidłowych grubości i stylów czcionek dla rodziny czcionek.
  • Poprawiona wydajność front-endu.
  • Lokalizacja po stronie serwera dla lepszej wydajności i prywatności.

To była niewielka próbka argumentów przemawiających za włączeniem API do rdzenia WordPressa.

„Istnieje wiele ulepszeń w Gutenbergu, które znajdują się w stanie zawieszenia, czekając na interfejs API czcionek internetowych”, napisał Stathopolous w bilecie. „Nie posiadanie interfejsu API czcionek internetowych jest w tym momencie blokadą. Nie jest to pozycja, którą warto mieć na naszej liście życzeń, jest to warunek konieczny, aby iść naprzód”.

Obecnie żaden standard nie odnosi się konkretnie do czcionek internetowych w WordPress. Autorzy motywów wykorzystują istniejące funkcje do kolejkowania arkusza stylów innej firmy lub niestandardowego z regułami @font-face . Jest to ogólnie przyjęta praktyka w społeczności autorów tematów na przestrzeni lat.

Jednak wielu zaakceptowało to niechętnie. Kilka z nich stworzyło niestandardowe skrypty, aby złagodzić problemy. Wielu innych po prostu kopiuje dowolną metodę, z której korzysta najnowszy domyślny motyw WordPress.

Jednym z celów jest sprawienie, aby programiści nie musieli się martwić o wykonywanie całej dodatkowej pracy związanej z ładowaniem czcionek internetowych. Naprawdę nie powinno być potrzeby, aby motyw wymyślił, jak załadować je zarówno w edytorze, jak i interfejsie, obsługiwać wstępne ładowanie lub uwzględniać lokalizację. Ponieważ motywy się starzeją i zmieniają się interfejsy API innych firm, takie jak Google Fonts, nie będzie potrzeby aktualizowania motywów, jeśli WordPress zajmie się tym pod maską.

Problem, jak najlepiej załadować czcionki internetowe, mnoży się, gdy dodajesz wtyczki do miksu. Ogólnie rzecz biorąc, motywy wykonują cały ciężar, jeśli chodzi o projektowanie. Jednak niektóre wtyczki przeskakują w tę stronę świata WordPressa, aby dodać dodatkowe opcje stylu. Nie ma sposobu na rozwiązanie konfliktów podczas ładowania wielu kopii tej samej czcionki. Nie ma też żadnych niezawodnych sposobów na wyłączenie czcionek motywu i zastąpienie ich za pomocą wtyczki.

Jeden z autorów wtyczek wysłał mi e-maila z wiadomościami, które już znałem. Wygląda na to, że interfejs API czcionek internetowych nie pojawia się już w WordPressie 5.9. Deweloper przygotowywał się do uruchomienia nowej strony internetowej i usługi oprócz nowej funkcji. Mieli nawet maskotkę. Na razie może po prostu poczekać.

Termin zamrożenia funkcji minął dwa dni temu. Dlatego jest mało prawdopodobne, że interfejs API czcionek internetowych zostanie ponownie dodany do kamienia milowego WordPress 5.9. Może deweloperzy zobaczą to, gdy wyląduje wersja 6.0. Być może wepchnięcie go do wtyczki Gutenberga tchnie w to trochę więcej życia, pozwalając współtwórcom na rozwój dzięki nowym funkcjom, które na nim polegają.