Авторы Gutenberg изучают альтернативу использованию фреймов для мета-боксов

Опубликовано: 2017-11-08

Дискуссия вокруг использования iframes для мета-блоков в Gutenberg стала более острой на выходных, поскольку заинтересованные разработчики умоляли команду рассмотреть недостатки текущего подхода. Ответы руководства Гутенберга поначалу развеяли опасения, представив реализацию iframe как эксперимент, который «работает «на данный момент»», но это не то, что команда будет выпускать.

Вместо того, чтобы получить ответ на конкретные опасения по поводу производительности и доступности подхода iframes, Кевину Хоффману было предложено подумать о будущем метабоксов и «случаях (если таковые имеются), которые не будут преобразованы в блоки». Когда к сообществу разработчиков неоднократно обращаются с просьбой протестировать и высказать свое мнение, но оно сталкивается с отклонением по вопросам, которые имеют решающее значение для сайтов, использующих WordPress в качестве CMS, дискуссии на GitHub становятся более горячими.

«Люди беспокоятся и разочаровываются, и мне кажется, что они имеют на это полное право, потому что считается, что команда, работающая над Гутенбергом, плохо понимает, как используются метабоксы, мало заботится о том, какое влияние это окажет. , и собирается двигаться вперед со своим видением, несмотря ни на что», — сказал Джимми Смутек, ведущий разработчик отдела внешних связей Университета Джона Хопкинса, в ответ на признание сотрудников Гутенберга в том, что они игнорировали отзывы.

После нескольких раундов разработчиков, присоединившихся к ветке, чтобы опровергнуть представление о том, что iframes для метабоксов «пока работают», вчера к обсуждению присоединился ведущий разработчик Gutenberg Матиас Вентура и подтвердил, что эксперимент, вероятно, будет прекращен довольно скоро.

«Я рад, что в конце разговор переориентировался на проблему темы: жизнеспособн ли текущий подход к мета-полям в iframe? Ответ отрицательный», — сказал Вентура. «iframes — это деталь реализации, я думаю, что мы можем относительно легко отказаться от них. Так что давайте сосредоточимся на этом».

Он также ответил на распространенное мнение о том, что WordPress должен периодически улучшать сам редактор (а не всю страницу), прежде чем приступать к капитальному ремонту мета-полей.

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

Вентура сказал, что невнесение изменений в другие аспекты экрана редактирования, безусловно, было бы самым простым путем для Гутенберга, но это «было бы несправедливо по отношению к целям проекта и долгосрочным пользователям WordPress».

Разработчик WordPress Гэри Джонс утверждал, что использование более итеративного подхода не изменит цели проекта, но позволит создать больше сайтов в процессе.

«Пошаговое продвижение никоим образом не ставит под угрозу цели проекта», — сказал Джонс. «Вы все еще можете перейти к полноразмерной настройке, если это цель, но, делая это поэтапно, вы привлечете к себе остальную часть сообщества разработчиков». Джонс привел Customizer в качестве примера функции в WordPress с концепцией, которая реализуется с течением времени с помощью многих итераций.

Вентура ответил разъяснением подхода команды Гутенберга к итерации проекта, смене парадигмы, которая с самого начала поддерживает создание контента на основе блоков.

«Мы предложили поэтапный подход, основанный на оригинальном посте Мэтта о новых фокусах, он просто рассматривает шаги по-другому», — сказал Вентура. «Обычно в проекте Gutenberg есть три этапа: от редактора сообщений до шаблонов страниц и создания сайта. Первоначальным является то, что парадигма — это парадигма, в которой содержание представляет собой единую область с блоком в качестве основного понятия, а результат может быть визуально представлен ясно и без чрезмерных абстракций».

Вентура также заверил тех, кто следит за обсуждением, что проект не прекратит поддержку мета-боксов, но ему нужно больше времени, чтобы поэкспериментировать с различными вариантами интерфейса.

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

Он также сказал, что команда планирует создать больше механизмов для обработки несовместимостей, а также «позволить подписаться на большее количество вещей (скажем, если вам удобно, чтобы ваши мета-поля отображались в Гутенберге, вы могли бы заявить о его поддержке, или наоборот. ”

В настоящее время разрабатывается новый подход к рендерингу метабоксов без использования iframe. Риад Бенгуэлла создал запрос на вытягивание, который пытается отменить iframe и реализовать предложение, предложенное Томом Ноуэллом во время обсуждения:

Вместо того, чтобы загружать Gutenberg на странице настроек, давайте загрузим его на главную страницу классических редакторов, загрузим метабоксы в их родной среде, а затем поднимем DOM-узел контейнера в компонент через JS.

Затем мы используем другой тип переключателя, чтобы убедиться, что классический редактор все еще можно использовать. Сюда:

- мы избегаем ерунды iframe
- метабоксы работают так же, как и всегда, когда речь идет о регистрации
- существующий JS работает так, как ожидалось, и никаких взломов не требуется, чтобы все заработало на стороне PHP

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

Команде Гутенберга нужна новая коммуникационная стратегия

Дискуссия о долгосрочной жизнеспособности использования iframes для мета-блоков выявила отсутствие единого сообщения или стратегии коммуникации среди лидов Гутенберга. Соавторы проекта стали нетерпеливы из-за того, что сообщество не уловило видение, но общение разбросано по различным блогам, комментариям, каналам Slack и обсуждениям на GitHub.

Мортен Рэнд-Хендриксен открыл новую тему с запросом на централизованный ресурс, который может служить простым описанием масштабов, направления и целей Гутенберга.

«По моим наблюдениям, сообщество изо всех сил пытается увидеть более широкий масштаб проекта Гутенберга из-за отсутствия единого авторитетного ресурса на простом языке, содержащего эту информацию», — сказал Рэнд-Хендриксен. «Это создает высокую степень спекуляций, недопонимания и разочарования со стороны всех сторон, и в результате страдает проект».

У Gutenberg есть центр документации, но пока эти документы носят более технический характер и в них отсутствует практическая дорожная карта того, как команда стремится достичь своих целей. Раздел часто задаваемых вопросов текущих документов ближе всего к ресурсу на простом языке, который Рэнд-Хендриксен запрашивает в своем билете. Файлы readme.txt как для репозитория GitHub Гутенберга, так и для плагина WordPress.org создают впечатление, что проект просто обновляет текущий редактор, чтобы он был основан на блоках, а не перестраивал весь экран редактора.

«Из-за раздробленности этой информации любому человеку сложно получить четкое представление о проекте в целом, и, хотя сообщения Матиаса и Мэтта хорошо объясняют грандиозное видение проекта, в них отсутствует конкретная разбивка на простой язык. главное, что нужно сообществу, чтобы получить четкое представление о том, что представляет собой этот проект и куда он движется», — сказал Рэнд-Хендриксен. «Они также существуют как независимые спутники информации, циркулирующей по проекту, а не как основные части самого проекта».

Сообщество вмешивается в проблему GitHub с вопросами, на которые они хотели бы получить ответы в более прозрачной дорожной карте продукта, написанной простым языком. Подобный документ может помочь команде Гутенберга лучше донести цели проекта и избежать неоднозначных сообщений, вызывающих ненужную путаницу.