Categories: Новости

Новый плагин для записи файлов JSON темы WordPress через YAML

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

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

Как человек, у которого была своя доля головной боли при написании непосредственно в JSON, я никогда не был так счастлив, глядя на  мой редактор кода.

Это красиво.

Я просто хотел бы сначала подумать об этой идее плагина. Я обычно работаю с файлами YAML при работе с другими системами и конвертирую данные в PHP и JSON. Это просто имело смысл, как только я увидел описание плагина.

JSON — не самый простой для написания формат при работе с конфигурационными файлами, чем и является сам theme.jsonфайл. Он хорошо работает для хранения данных на разных языках, но я иногда съеживаюсь, когда открываю файл 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, но хочет интеграцию со своей системой сборки.

writer

Recent Posts

Плагин Delete Me для WordPress помогает владельцам веб-сайтов предоставить право на забвение GDPR

Поскольку до крайнего срока соблюдения GDPR ЕС осталось всего 178 дней , многие владельцы сайтов…

2 года ago

Команда Gutenberg наращивает юзабилити-тестирование в WordCamp US

Команда Gutenberg создаст станцию ​​тестирования удобства использования в WordCamp US, где посетители смогут принять участие…

2 года ago

Плагин распространителя теперь в бета-версии: новое решение для синдикации контента WordPress от 10up

Сегодня компания 10up опубликовала предварительную версию своего плагина Distributor , нового решения для синдикации контента…

2 года ago

Gutenberg 1.8 добавляет большую расширяемость для разработчиков плагинов

На этой неделе был выпущен Gutenberg 1.8 с несколькими заметными улучшениями, которые предоставят разработчикам плагинов…

2 года ago

Gutenberg 15.5 представляет экспериментальную поддержку разметки сетки

На этой неделе был выпущен Gutenberg 15.5 с новыми функциями и улучшениями возможностей полнофункционального редактирования…

2 года ago

DesktopServer 3.8.4 включает подарок сообществу

DesktopServer выпустил версию 3.8.4 своего программного обеспечения для локальной разработки. Эта версия включает в себя…

2 года ago