В GitHub прошла оживленная дискуссия по поводу использования iframe для мета-полей в Gutenberg. Разработчик WordPress Кевин Хоффман вчера создал задачу под названием «Могут ли iframes стать жизнеспособным долгосрочным решением для мета-полей?»
Базовая поддержка мета-полей появилась в релизе Gutenberg 1.5. Хоффман идентифицировал несколько проблем с iframe, которые появились, как только разработчики стали тестировать текущую реализацию мета-полей. Он провел свое исследование производительности, которое показало, что использование iframe в Gutenberg утроило количество запросов ресурсов, поскольку подключение всех CSS и JS ресурсов происходит как в родительском окне, так и во всех iframe.
«Вообще, iframe утратили популярность в веб-разработке еще несколько лет назад по причинам, которые хорошо задокументированы», — указал Хоффман перед цитированием множества проблем, отмеченных разработчиками плагинов при тестировании мета-полей в Gutenberg. – «Могут ли эти проблемы быть решены без модификации темы или плагина, которые генерируют мета-поле? Мы должны учитывать, что сторонний код, который приводил к выводу мета-полей много лет, может не получить обновлений для совместимости с iframe».
Руководитель проекта Gutenberg Тэмми Листер ответила на вопросы Хоффмана, указав, что текущая реализация мета-полей – это всего лишь эксперимент, а не обязательно то, что появится в WordPress 5.0:
«То, как сегодня реализованы мета-поля в Gutenberg – это эксперимент, шаблон, поскольку проект пока еще только намечает направление своего развития. Такой вариант был создан для текущего тестирования, но он не будет поставляться с WordPress»
«Резюмируя вышесказанное, я считаю, что очень важно рассмотреть то, для чего будут применяться мета-поля. В каких случаях мета-поля не будут конвертированы в блоки? Должны ли все мета-поля работать на мобильных устройствах? Существует ли еще какой-либо альтернативный интерфейс, который мы не рассматривали? Я думаю, что да. В данный момент нам нужно изучить эти возможности и найти вариант, который будет работать и прямо сейчас, и в будущем».
Описание этой возможности как эксперимента, который «работает на данный момент» (но не будет поставляться в WordPress), стало сюрпризом, учитывая, что Gutenberg 1.5 был анонсирован как релиз, который «включает в себя долгожданную поддержку мета-полей (требует тестирования!)».
Хоффман утверждает, что подход с iframe не работает даже сейчас. В задаче, которую он открыл, приводятся примеры проблематичности этой технологии. Если Gutenberg вооружится текущим подходом, то в таком случае многочисленные плагины придется изменять для совместимости с WordPress 5.0, что дискредитирует саму цель поддержки старых мета-полей.
«Я пока не видел каких-либо доказательств того, что мета-поля продолжат работать с Gutenberg», — отметил Хоффман. – «Если ответ отрицательный, то нам нужно перестать притворяться, что 5.0 станет еще одним очередным релизом WordPress. Нужно честно признаться, что этот релиз сломает обратную совместимость».
Эдвин Кромли, участник проекта, отметил, что команда предполагает, что некоторые темы и плагины будут сломаны, и что невозможно предусмотреть все возможные случаи. Он признал, что решение с iframe может не соответствовать целям проекта. Эдвин выступает за создание наилучшего опыта взаимодействия для подавляющего большинства пользователей.
Однако нынешний подход негативно повлияет на многочисленные сайты, которые используют WordPress в первую очередь как CMS с мета-полями. Разработчик ядра WordPress Скотт Тейлор выразил обеспокоенность по поводу произвольных типов записей, которые зачастую используют только мета-поля вместо традиционной секции «content».
«В текущей итерации поддержка мета-полей – это дополнение, хотя в реальности для большинства пользователей мета-поля – это UI, API, механизм, который люди используют для создания своей CMS», — указал Скотт. – «iframe – это Гулаг».
«И мы забываем про суть WP: я должен быть в состоянии обновиться до последней версии WP и ничего не переписывать. У меня очень много проектов на WordPress, которых я не планирую больше касаться. Могу ли я быть уверенным в том, что некоторые из них не сломаются в результате этого изменения?»
Хоффман выступал за сокращение масштабов проекта, чтобы сфокусировать внимание только на компоненте редактора – это популярное мнение, которое разделяют многие разработчики плагинов. Такой подход был описан в блоге Yoast, где предлагалось альтернативное развитие Gutenberg. Все изменения должны быть ограничены областью редактирования, что позволит разработчикам обновить свои плагины, а команде Gutenberg даст время на поиск адекватного решения для мета-полей.
«Я думаю, что эта цель была бы намного более достижимой, если бы команда Gutenberg занялась переработкой редактора, а не переделыванием всей страницы», — заметил Хоффман. – «Тогда мы могли бы оставить существующие хуки, и мета-поля продолжили бы взаимодействовать друг с другом, как сейчас. Кроме того, подключение ресурсов перестало бы являться проблемой, поскольку оно бы продолжило работать так же, как работает сегодня».
«Я полностью согласен с той концепцией, которую предложил Yoast. Она поддержит значительную часть уже сделанной работы и снизит масштабы проекта, что позволит сконцентрироваться на компоненте редактора».
Разработчик Gutenberg Риад Бенгуэлла отметил, что команда не рассматривает эту концепцию.
«Повторное использование участков Gutenberg для формирования этой концепции относительно выполнимо, но это не тот опыт взаимодействия, к которому мы стремились. Мы хотим сначала создать самый лучший редактор, после чего уже сделать его доступным для людей без проблем с обратной совместимостью», — рассказал Бенгуэлла.
«Когда мы поймем, что мы готовы поставлять идеальный вариант Gutenberg, мы обсудим стратегии по его обновлению. Концепция, как та, что была предложена, представляет собой вариант обновления, но не конечный продукт. Также возможны и другие пути обновления».
Сообщество разработчиков WordPress не заинтересовано в том, чтобы затягивать эту дискуссию. Многие хотят получить ответ на вопрос о том, как мета-поля будут вписываться в контекст редактора Gutenberg, чтобы знать, к чему готовиться. Учитывая многочисленные проблемы с подходом iframe, обработка старых мета-полей в новом редакторе потребует дополнительных экспериментов и, возможно, поиска альтернативного решения.
«Зачем тратить тысячу часов на разработку идеального редактора, если он не будет совместим с существующими сайтами?» — задается вопросом Хоффман. – «Если первое впечатление от редактора состоит в том, что он ломает UI, от которого зависят пользователи, то они никогда не станут его тестировать».
«Я думаю, что это было ошибкой – откладывать решение вопроса так надолго», — отметил разработчик ядра WordPress Аарон Жорбин. – «Особенно учитывая то, что многим организациям потребуется как минимум 1-2 квартала для подготовки».
Марк Каплун предложил команде Gutenberg использовать популярный плагин в качестве показателя успешности текущих и будущих экспериментов по поддержке мета-полей.
«Мое предложение состоит в том, чтобы не называть мета-поля готовыми, пока Yoast SEO не будет с ними работать должным образом», — указал Каплун. – «Он несколько сложен в плане взаимодействия, и он установлен на многих сайтах. Если Gutenberg не будет работать с ним, то и никто не будет использовать Gutenberg».
Грег Шоппе, который активно тестировал Gutenberg и писал про его разработку, высказался за альтернативную реализацию Yoast.
«Мне понравилось представление Gutenberg от Yoast», — говорит Грег. – «Я не понимаю, почему обновление визуального редактора было интерпретировано как замена всего интерфейса редактирования записей. Это же полностью противоречит концепции с кораблем Тесея».
«В этом случае отсутствие четкого направления и поддержки существующих стандартных потоков операций сильно мешает разработчикам. Как я могу двигаться вперед в создании проекта, если у меня нет доверенного набора хуков и инструментов? Неразумно считать, что такой крупный проект полностью воссоздаст стандартный рабочий процесс для разработчиков всего за одно обновление. И это безумие, что такие разговоры начались только сейчас, в ноябре, когда по плану слияние должно произойти в начале следующего года».
Поиск подхода к мета-полям, который сохранит мощные возможности CMS WordPress и не отпугнет пользователей и разработчиков, является одной из главных задач для команды Gutenberg. Разработчики Gutenberg по-прежнему хотят сделать предложение о слиянии в начале следующего года, однако экспериментальный статус мета-полей лишь сильнее разделяет сообщество WordPress.
Источник: wptavern.com