Обновление темы GitHub-блога
Введение
Тема Chirpy, которую я использую, постоянно поддерживается и регулярно обновляется. Иногда, когда скучно, я просматриваю список изменений. На этот раз я обнаружил, что как раз вчера вышла версия 7.0.0 с несколькими улучшениями и новыми функциями.
В этой версии появилась возможность вставлять локальные видео- и аудиофайлы, а также официальная поддержка поля description во фронтматере. Примечательно также, что теперь можно измерять количество просмотров постов с помощью GoatCounter.
Обновление
Рекомендуется сначала сделать резервную копию файлов!
Поскольку GitHub-блог гораздо менее связан с провайдером услуг по сравнению с другими платформами, процесс обновления можно рассматривать как простое получение новых файлов и кода в существующую папку. Всё, что нужно, — это слияние (merge) обновлённого кода в мой репозиторий. Так что тем, кто уже знаком с процессом слияния через Git, будет несложно.
В моём случае при настройке темы я самостоятельно улучшил корейский перевод в _data/locales/ko-KR.yml, изменил тип и размер иконок боковой панели, выделил заголовки превью статей полужирным — много мелких доработок. Эти изменения, естественно, официально не включены, поэтому при каждом обновлении нужно, как при хирургической операции, проверять и сохранять каждый изменённый фрагмент кода. В официальном руководстве по обновлению также сказано: «Please be patient and careful to resolve these conflicts».
Автоматическое слияние
git remote add upstream https://github.com/cotes2020/jekyll-theme-chirpy.git
{: .nolineno }
Я начал с повторной регистрации Git-репозитория на всякий случай. Это необязательно.
git fetch upstream
git merge remotes/upstream/master
{: .nolineno }
Затем выполнил слияние с веткой master Chirpy. Версию сливаемых файлов можно проверить по последнему тегу, который на момент написания статьи, конечно же, v7.0.0. Если проблем не возникло, Git автоматически сливает то, что может, а остальное нужно доделать вручную.
Ручное слияние
Экран редактирования информационной страницы. Нужно оставить один из двух вариантов для разрешения конфликта.
Затем я продолжил ручное слияние в VS Code. Тем, кто впервые сталкивается с таким слиянием: если хотите сохранить свой код, выбирайте Accept Current Change, если заменить новым — Accept Incoming Change. Выбор сложно отменить позже, так что лучше просматривать внимательно.
До этого я использовал версию 6.3.1. Изменений с тех пор накопилось много, и моих доработок тоже было немало, поэтому я проверял каждый пункт медленно. К счастью, я помечал проблемные места комментариями вроде /* region изменено */, так что на всё ушло около 30 минут — не слишком долго.
npm run build
{: .nolineno }
После слияния нужно скомпилировать CSS и JavaScript-файлы. Даже если это хлопотно, делать это нужно вручную.
git add assets/js/dist _sass/vendors -f
{: .nolineno }
Затем добавить сгенерированные файлы в репозиторий и запушить — готово.
После завершения нужно открыть локальный сервер командой bundle exec jekyll s и проверить, нормально ли он запускается и нет ли проблем со страницей. Возможно, какие-то слияния были пропущены или выполнены некорректно, что могло повредить страницу. Если такие проблемы есть, решаем их не спеша, даже если это займёт время.
Проверка применения
{% include embed/video.html src=‘/2024-05-12-blog-update/video/240410-232136.mp4’ title=‘Видео-образец. Скриншот игры, которую сейчас разрабатываю.’ %}
{% include embed/audio.html src=‘/2024-05-12-blog-update/audio/eating-chips.mp3’ title=‘Аудио-образец. Звук хрустящих чипсов.’ %}
Заключение
Обновление завершено! И видео, и аудио — новые функции из версии 7.0.0 — работают отлично. Правда, глядя на результат, подумал, что для видео, наверное, было бы аккуратнее использовать встраивание с YouTube. Надо будет не спеша подумать, где это применять.
Так или иначе, накопилось много отложенных правок, и я давно хотел обновить версию темы. Для первого раза всё прошло удачно, и я доволен. Попробовав, понял, что это не так уж сложно. В будущем буду заниматься этим регулярно 😊