Разработчик ядра WordPress Алекс Шилс опубликовал свое предложение по созданию каталога блоков на WordPress.org, который будет содержать в себе плагины, реализующие отдельные JavaScript-блоки. Такие блоки можно будет найти и установить через Gutenberg. Создание каталога для поиска блоков и их простой установки – один из девяти проектов, которые Мэтт Мулленвег запланировал на 2019 год.
Коллекции блоков – популярный способ дистрибуции группы связанных блоков. Однако такой подход может приводить к излишнему «раздуванию» плагинов. В настоящее время поиск отдельных блоков по их названию невозможен. Имена и описания плагинов – не самый лучший индикатор того, что именно делают блоки.
Алекс предложил ограничить новый каталог только плагинами с отдельными блоками, фронтэнд-блоками на JS без отдельного UI (работающими только в интерфейсе редактора). Это будет отдельный раздел в каталоге плагинов, предназначенный для поиска блоков по их названию и описанию. Разработчикам потребуется использовать block.json с метаданными, как отмечено в Block Registration RFC, где содержится техническая спецификация по регистрации блоков.
Самая противоречивая часть предложения – возможность установки блоков через редактор Gutenberg. Долгосрочная цель – сделать этот процесс максимально гладким. Коллекции блоков и отдельные блоки, не соответствующие требованиям каталога, будут доступны в стандартном каталоге плагинов. Это может запутать пользователей, ведь блоки теперь будут располагаться в двух разных каталогах.
«Редактор Gutenberg не должен превращаться в площадку для установки плагинов», — прокомментировал предложение Мэтт Кромвелл. – «Это не его цель и не его функция. Пусть он останется редактором, конструктором, инструментом для управления контентом и т.д. Поиск сторонних библиотек и установка плагинов с его помощью – это не цель данного продукта».
Кромвелл предложил в качестве альтернативы централизованный менеджер блоков, который обеспечил бы лучший процесс поиска и установки блоков. Также Мэтт Кромвелл акцентировал внимание на том, что в каталог необходимо вносить в том числе и динамические блоки, а не только JS-блоки.
«Централизованный менеджер блоков, как уже предлагалось ранее, позволит внедрить лучший опыт взаимодействия для поиска и установки блоков, нежели Gutenberg. Мне нравится идея, что в каталоге должны присутствовать только плагины, реализующие отдельные блоки. Однако динамические блоки, зависящие от других существующих плагинов или внешней функциональности, также могут быть добавлены в этот важный каталог. Я не вижу смысла, почему мы должны ограничивать блоки только теми, которые используют JS».
WordPress-разработчик Джейми Шмид также выразила свое сомнение по поводу встраивания установки блоков в редактор.
«Я не уверена, что поиск и установка блоков внутри редактора – это лучшее решение», — отметила Джейми. – «Оно применяется на уровне отдельных страниц, хотя в реальности должно (скорее всего) применяться на уровне всего сайта. Вместо этого я бы хотела видеть централизованный просмотр всех установленных блоков, как это реализовано сейчас для плагинов, но более структурированный: с разбиением по типу, функционалу, с отдельным превью рядом и т.д. Это будет стимулировать человека к принятию решений на уровне всего сайта. То же самое касается и управления доступом к установке новых блоков».
Интерфейс поиска плагинов с отдельными блоками предлагалось встроить в инструмент вставки блоков Gutenberg. Это позволило бы пользователям быстро найти и установить нужный блок, если они не нашли требуемый среди предложенных блоков.
Риад Бенгуэлла, технический руководитель фазы 2 Gutenberg, призвал всех участников рассматривать блоки как фрагменты контента, которые не зависят от редактора записей, и могут быть настроены в любом месте WordPress.
«Блоки – отдельные элементы, которые несут в себе определенное значение и могут использоваться в разных контекстах», — рассказал Бенгуэлла. – «Блок – фрагмент контента (статичного или динамического), который может быть настроен и обработан где угодно». Сюда относятся блоки внутри и за пределами post_content, контент в редакторе сайта, внутри панели администратора WordPress, в headless-приложении или даже в другой CMS.
«Мы должны быть амбициозными и думать про все контексты (чтобы видеть полную картину), но в то же время мы должны быть прагматичными и постепенно, шаг за шагом двигаться к нашей цели», — отметил Риад.
Обсуждение новой директории блоков и архитектуры блочных плагинов продолжается в командах разработчиков WordPress. Шилс отметил, что предложение является отправной точкой, и участники пока еще находятся на этапе изучения разных идей.