Проблема с Github Pages
Как обычно по субботам, написал статью и попытался ее опубликовать. Был удивлен, когда на почту упало сообщение от Github о том, что сборка сайта завершилась с ошибкой.
Проблема Github Pages заключается в том, что логи сборки недоступны. И что конкретно произошло, неизвестно. Отписал в поддержку и в течение нескольких часов получил ответ, в котором процитировали ошибку:
Timezone: "Europe/Moscow"
Source: /page-build/repo
Destination: /page-build/site-source-pagesjekyll-ftw
Error: A Liquid tag in the excerpt of _pages/articles.html couldn't be parsed.
Error: could not read file /page-build/repo/_pages/articles.html: undefined method `ancestors' for nil:NilClass
Conversion error: Jekyll::Converters::Markdown encountered an error while converting '_posts/2012-04-29-ssh-tunnel.markdown':
Rouge::Guesser::Ambiguous
Fatal: Rouge::Guesser::Ambiguous
Ambiguous guess: can't decide between ["xml", "mason"]
И посоветовали обратиться к документации. Проблема возникла в Rouge, который обеспечаивает подсветку синтаксиса блоков кода. Странность в том, что я помимо публикации новой статьи больше ничего не предпринимал.
Попытался отколючать rouge, как указывалось в ряде статей: Disable Jekyll’s default syntax highlighter Rouge и Disable the Rouge - Jekyll’s default syntax highlighter . Но, как оказалось это не помогало.
В официальной документации Github Pages указывается на то, что у них есть ряд опций, которые изменить нельзя. И к ним относятся настройки подсветки синтаксиса.
Решил попробовать решить проблему иначе. А именно, отключил использование Github Pages, переконфигурировал свой блог на откоючение Rouge, настроил Github Actions для сборки и деплоя. И только в этом случае публикация прошла успешно.
Время сборки незначительно увеличилось, так как теперь дополнительно при каждой публикации готовиться окружение. Но в то же время, теперь у меня есть перед глазами логи каждой публикации, и я знаю что происходит каждый раз. Более того, теперь версия jekyll у меня прибита гвоздями. И буду проводить ее обновление только в том случае, если это потребуется. И буду проводить сам, без влияния сторонних организаций.
И да, теперь пора мигрировать на другой движок. Только какой? Думаю.