Предлагаемый API веб-шрифтов не появится в WordPress 5.9, возможно, сначала появится в Gutenberg

Опубликовано: 2021-11-12

После того, что казалось отказом от WordPress 5.9, предложенный API веб-шрифтов был отложен. Эта функция стандартизирует то, как разработчики тем и плагинов загружают шрифты, и заложит основу для будущих функций, ориентированных на пользователя.

Джоно Алдерсон открыл заявку на эту функцию в феврале 2019 года. В последние месяцы предложение набрало обороты. Запрос на вытягивание содержал более 200 сообщений в тикете, 93 коммита и одобрение кода двумя основными коммиттерами. API казалось готовым. Однако в последние дни он застопорился.

Эндрю Озз, ведущий разработчик WordPress, фактически остановил возможность появления нового API в версии 5.9. Он заявил, что не думает, что предложение готово для WordPress.

«Чисто как код это выглядит хорошо», — написал он в билете. «Это действительно хорошо задокументировано (спасибо [Тоня Марк]!). Однако я до сих пор не понимаю, как это сделает WordPress лучше в краткосрочной и долгосрочной перспективе. Мы болтали с Андреем Драганеску, и он предположил, что в идеале это должен быть функциональный плагин, и я согласен. Тогда можно было бы реально протестировать его в продакшене, проверить (или отвергнуть) предположения, которые были сделаны при его создании, и сделать его действительно достойным дополнением к WordPress. К сожалению, для версии 5.9 уже слишком поздно».

Одна из проблем с тестированием подключаемых модулей функций для API заключается в том, что они не часто принимаются, как отмечалось другими в заявке. В большинстве случаев разработчики не будут полагаться на них в производственной среде. И средний конечный пользователь не будет устанавливать что-то конкретное для разработчиков.

«Предложение сделать это в виде функционального плагина — это элегантный способ отложить что-то на несколько лет», — сказал Ари Статопулос, один из разработчиков API. Тем не менее, он указал, что REST API является одним исключением, которое работает достаточно хорошо, чтобы его можно было портировать в WordPress.

Основное предложение WordPress, скорее всего, будет добавлено в плагин Gutenberg для дальнейшего изучения. Это был бы своего рода компромисс между запуском в виде отдельного функционального плагина и переходом в WordPress 5.9.

API веб-шрифтов не имеет прямого отношения к блочной системе. Сегодня эту функцию могут использовать как традиционные, так и блочные темы, а также плагины. Однако несколько предложений Gutenberg полагаются на существование API, например, разрешение авторам тем определять веб-шрифты через их файлы theme.json .

Озз перечислил несколько вопросов по предложению, и несколько разработчиков ответили на каждый. Однако его основной аргумент зависел от практичности того, почему все в API было необходимо, заявив, что предыдущие ответы были «в принципе» и, похоже, основывались на предположениях.

На самом базовом уровне API веб-шрифтов позволит разработчикам регистрировать и загружать локально размещенные шрифты или шрифты из Google Fonts. Разработчики также могут добавлять настраиваемых поставщиков помимо двух стандартных. Первая итерация предлагаемого API была больше связана с созданием основы для будущих выпусков WordPress.

Привлекательность этой функции заключается не только в загрузке шрифтов. Технически авторы темы могли бы сделать это с помощью одной строки кода, если бы захотели. Четыре строки кода, если они хотят следовать текущим основным стандартам WordPress, по крайней мере, во внешнем интерфейсе.

Статопулос выпалил список улучшений, которые такой API внесет в WordPress и его расширения.

  • Темы могут определять шрифты через свои файлы theme.json .
  • Предварительный просмотр шрифтов в селекторе семейства шрифтов в редакторе.
  • Показаны действительные веса и стили шрифта для семейства шрифтов.
  • Улучшена производительность интерфейса.
  • Локализация на стороне сервера для повышения производительности и конфиденциальности.

Это была небольшая выборка аргументов в пользу включения API в ядро ​​WordPress.

«В Гутенберге есть много улучшений, которые находятся в подвешенном состоянии, ожидая API веб-шрифтов», — написал Статополус в заявке. «На данный момент отсутствие API веб-шрифтов является препятствием. Это не то, что нужно иметь в нашем списке желаний, это требование, чтобы двигаться вперед».

В настоящее время нет стандарта, специально относящегося к веб-шрифтам в WordPress. Авторы темы используют существующие функции для постановки в очередь сторонней таблицы стилей или пользовательской таблицы с правилами @font-face . Это общепринятая практика в сообществе авторов тем на протяжении многих лет.

Однако многие приняли это с неохотой. Некоторые создали собственные сценарии, чтобы облегчить болевые точки. Многие другие просто копируют любой метод, который использует последняя тема WordPress по умолчанию.

Одна из целей — сделать так, чтобы разработчикам не приходилось беспокоиться о выполнении всей дополнительной работы, связанной с загрузкой веб-шрифтов. На самом деле не должно быть необходимости в теме, чтобы выяснить, как загружать их как в редакторе, так и во внешнем интерфейсе, обрабатывать предварительную загрузку или учитывать локализацию. По мере того, как темы стареют и сторонние API, такие как Google Fonts, меняются, в темах не будет необходимости обновляться, если WordPress позаботится об этом изнутри.

Проблема того, как лучше всего загружать веб-шрифты, умножается, когда вы добавляете в микс плагины. Как правило, темы делают всю тяжелую работу, когда дело доходит до дизайна. Тем не менее, некоторые плагины переходят на эту сторону мира WordPress, чтобы добавить дополнительные параметры стиля. Невозможно разрешить конфликты при загрузке нескольких копий одного и того же шрифта. Также нет надежных способов отключить шрифты темы и заменить их с помощью плагина.

Один такой автор плагинов написал мне по электронной почте, чтобы сообщить новости, которые я уже знал. API веб-шрифтов больше не появляется в WordPress 5.9. Разработчик готовился к запуску нового веб-сайта и сервиса в дополнение к новой функции. У них даже был талисман. На данный момент, возможно, придется просто подождать.

Крайний срок заморозки функций истек два дня назад. Таким образом, маловероятно, что API веб-шрифтов вернется к этапу WordPress 5.9. Возможно, разработчики увидят это, когда выйдет версия 6.0. Возможно, добавление его в плагин Gutenberg вдохнет в него больше жизни, позволяя участникам продвигаться вперед с новыми функциями, которые полагаются на него.