Вчера начался 8-й раунд информационной программы по полному редактированию сайта (FSE). Вместо ориентированного на пользователя призыва к тестированию функций из пользовательского интерфейса руководитель программы Энн Маккарти просит добровольцев погрузиться в код . Новое приключение – это тестирование theme.jsonфайлов.
Поворот, вероятно, ограничит круг обычных добровольцев. Однако он может открыть его для аудитории, которая, возможно, сидела в стороне от предыдущих тестов: разработчиков тем.
Перед тем , как сразу перейти к файлам JSON с темой головой вперед , нам, вероятно, следует перейти на одну и ту же страницу.
Я называю theme.json переломным моментом между старым и новым WordPress. Когда в конце 2018 года была выпущена версия 5.0 базовой платформы, это был революционный шаг вперед, но не на первый взгляд. Новый редактор – это просто новый редактор. Некоторым это понравится; другие возненавидят это. И чаще всего это было неуклюже, чем нет. По большей части WordPress оставался WordPress.
Основное программное обеспечение должно было быть изменено. Новые технологии не только по-своему демократизировали издательское дело, но и привносили ту же концепцию в дизайн.
Введение блоков было просто основополагающим. Новый редактор был несовершенным инструментом, часто ощущался как пресловутый круглый колышек, вставленный в квадратное отверстие.
Единственный способ воплотить в жизнь раннее видение проекта Гутенберга – продолжить устранение разрыва между тем, что пользователь видит в админке, и тем, что выводится в интерфейсе пользователя. Вот о чем весь theme.json файл. Это переводчик, который позволяет пользователям, темам и WordPress говорить на одном языке.
Что именно это означает?
С точки зрения пользователя, они видят всевозможные средства управления для изменения своих блоков. Цвет, размер шрифта, выравнивание и другие параметры – это инструменты, которые позволяют им настраивать свое содержимое.
Существуют серьезные ограничения того, что возможно в существующей системе. Авторы тем могут зарегистрировать несколько вариантов. В остальном может показаться, что система тем и блоков противопоставляется друг другу для контроля.
Вот theme.json тут-то и пригодится файл. Он позволяет темам и WordPress работать на одной странице, создавая стандартизированную систему, улучшающую взаимодействие с пользователем.
Этот файл, который находится в корневой папке темы, передает полномочия по настройке десятков предустановок (например, параметров цвета и шрифта), настраиваемых свойств CSS и стилей по умолчанию для блоков и элементов HTML.
Это также дает пользователям возможность включать или отключать определенные функции. Например, разработчики могут отключить для пользователей возможность устанавливать собственный размер шрифта, но предоставить им доступ к идеальной шкале выбора, которая вписывается в вертикальный ритм дизайна.
Однако он выйдет за рамки простой настройки блоков в редакторе контента. Когда в будущем будет запущена система глобальных стилей вместе с редактором сайта, пользователи будут настраивать многие из предустановок и перезаписывать стили блоков по умолчанию. Поскольку все говорят на одном языке, возникает меньше конфликтов.
Как отметила дизайнер Тэмми Листер в своей статье для Ephermeral Themes, Theme.json вдохновляет , темы застряли. Программное обеспечение, сообщество на протяжении многих лет возлагали на плечи разработчиков слишком много ответственности. Им пришлось вводить новшества и создавать системы, которые должны были исходить от WordPress. Необходимо было перевернуть не только основную платформу, но и систему проектирования.
«Я прекрасно осознаю, что сказать« первый основной тематический процесс в ядро »за многие годы – это настоящее заявление», – написал Листер. «Тем не менее, для меня Theme.json – это так. Я не говорю, что это игнорирует итерации и улучшения, WordPress – это проект, в котором их энергия. Тем не менее, темы о жизнеобеспечении застряли в земле, когда остальная часть фронтенд-разработки продолжалась. Это не было для некоторых попыток изменить это, в основном, когда они это сделали, время было неподходящим, и, поскольку это исходило не из ядра, всегда было труднее изменить ».
Пришло время новой эры интерфейсного дизайна. Но сначала надо проверить.
Тема тестирования JSON
Чем больше я погружался в этот призыв к тестированию, тем больше понимал, что он мне не подходит. Последние пару месяцев я уже был в гуще работы над theme.json файлом. Я знаю большинство мелких причуд и вижу пробелы. Уловки для работы с ним кажутся мне второй натурой.
Я выполнял все начальные и промежуточные шаги десятки раз. Я уже подал заявку на решение любых проблем, с которыми я столкнулся. Или меня уже опередил кто-то другой.
Эти этапы этого раунда испытаний требуют свежего взгляда. Наилучшие отзывы будут от авторов темы, которые будут рассматривать проблемы через другую пару линз. Если вы в этой группе, то сейчас некогда тестировать и давать отзывы.
Продвинутый этап требует воссоздания классической темы с использованием theme.json. Лучше всего придерживаться чего-то простого. В противном случае вы можете рассчитывать на недельный эксперимент. Маккарти рекомендует Twenty Twenty или Storefront. Я уже исполняю эту песню и танцую. Мой тестовый проект был старой темой, которую я распотрошил и превратил в блочную.
Есть одна общая проблема, к которой я постоянно возвращаюсь. Дело в том, что авторы темы вообще должны работать с файлом JSON.
Я понимаю «почему» за использованием JSON. Это универсальный формат, который мы можем передать от JavaScript к PHP. Сторонние API могут это понять.
Однако в настоящее время я сижу поверх 900+ строк кода в моем theme.json. Я слышал от пары других авторов тем, которые много работали с аналогичными числами. Я ожидаю, что он будет только расти.
«Количество строк» не обязательно является какой-то метрикой, где конкретная сумма является точкой разделения между «хорошо» и «плохо». Проблема в том, что комментарии в файлах JSON запрещены. Одним из краеугольных камней разумной разработки является документирование кода. Пропустить в документации несколько десятков строк – это не так уж и плохо. Однако, когда вы превышаете 900, ситуация может выйти из-под контроля.
Кроме того, в определенный момент вы начинаете хотеть разбивать части на отдельные группы. Такой объем кода требует лучшей организации.
То, что в настоящее время отсутствует, – это уровень PHP для использования авторами тем. Помните, JSON – универсальный формат. Конвертировать PHP в JSON и наоборот очень просто. Создание этого слоя для авторов тем позволило бы достичь двух целей:
Они могут организовать то, что, вероятно, будет содержать тысячи строк кода.
Переходить на новую систему будет проще.
Последний пункт, вероятно, является наиболее важным. PHP был языком тем с тех пор, как они появились. Разработчики знают это, и им удобно пользоваться, и WordPress должен пойти им посередине. Если мы закрываем пробелы, то это то, что нужно заполнить, прежде чем будут добавлены дополнительные возможности конфигурации и theme.json файлы превратятся в громоздких гигантов на 5000 строк.