Theme YAML: новый WordPress-плагин для представления JSON-файлов в формате YAML

У меня появился новый любимый плагин, связанный с разработкой WP – Theme YAML. Саша Паукнер (Sascha Paukner) выпустил его несколько дней назад. Этот плагин порадует многих разработчиков тем, ведь он позволяет создавать JSON для тем в формате YAML.

Авторам тем нужно будет просто создать новый файл theme.yaml и добавить в него свою конфигурацию в удобочитаемом формате YAML. Плагин преобразует его в JSON и сохранит в theme.json.

Блог Миши Рудрастых

Выглядит все это примерно так:

Великолепно!

JSON – не самый простой для написания формат при работе с конфигурационными файлами (такими как, собственно, theme.json). Он прекрасно подходит для хранения данных на разных языках, однако изменять или корректировать в нем что-либо практически нереально. Обычно он содержит сотни или тысячи строк. Также в нем нельзя оставлять встроенные комментарии, чтобы напомнить себе или другим, почему было принято то или иное решение.

YAML лучше? У него есть и свои плюсы, и свои минусы. Как показывает моя практика, синтаксис может отпугнуть некоторых новичков. Однако поддержка встроенных комментариев – его существенный плюс.

Документация плагина оставляет много вопросов. В ней ничего не сказано, как все это работает. Есть ли настройки для конвертации? Происходит ли все это автоматически? Происходит ли конвертация при каждой загрузке страницы?

Я решил посмотреть в код, чтобы понять, как работает плагин. В итоге я выяснил следующее: плагин автоматически ищет файл theme.yaml в корневой папке активной темы при загрузке страницы. Если файл найден, то тогда производится проверка времени его последнего изменения и это значение сохраняется в базу данных. Когда есть новые модификации файла, плагин парсит theme.yaml, конвертирует его в JSON и записывает результат в theme.json.

Если тема является дочерней, процесс пойдет автоматически для родительской темы.

Минус плагина – он оставляет JSON минимизированным, что затрудняет его чтение. Это нормально, если у вас есть файл theme.yaml под рукой. Однако при отправке тем в каталог WordPress.org такие файлы не должны быть в ZIP-архиве.

Я считаю, что код должен быть удобочитаемым и редактируемым для всех, кто получает копию темы. Авторы тем могут пойти несколькими путями. Можно отправить сразу оба файла theme.json и theme.yaml либо изменить следующий код в файле плагина:

$themeJson = json_encode($themeObject, JSON_UNESCAPED_SLASHES);

Нам нужно включить флаг JSON_PRETTY_PRINT для функции json_encode():

$themeJson = json_encode($themeObject, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);

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

Существуют и другие подходы для авторов тем, избегающих редактировать theme.json. Раньше я разбивал свой JSON по нескольким файлам, чтобы получить удобные и понятные фрагменты. Затем я применял плагин webpack для их слияния во время сборки.

Я рекомендую использовать JS YAML Parser или аналогичный пакет для тех, кто предпочитает работать с YAML в своей системе сборки.

Источник: wptavern.com

Сохранено из oddstyle.ru

%d такие блоггеры, как: