Goodbye Jekyll, Hello Hugo

Мне нравится Джекилл. Это помогло мне вернуться в блог, и я выбрал его как технологию для создания Основы Google Web с ним.

Что-то серьезно не так: ** Производительность **.

Время сборки для моего личного блога (около 400 страниц) занимает примерно 45 секунд. Веб-основы еще хуже, часто занимает много времени, чтобы создать только один языковой пакет, и мы поддерживаем 13 языков. Эта проблема производительности серьезно влияет на нашу команду и нашу команду для написания, потому что отдельные изменения в локальной промежуточной среде занимают более 40 секунд, чтобы быть видимыми в браузере.

  • Может быть, мы можем улучшить его, но я уверен, что он не может понять, как это сделать. Я не могу это измерить, и мы постоянно сталкиваемся с проблемами с Ruby (мы не Ruby devs) специально для версий Gems и обновлений времени выполнения.

У нас много технического долга с сайтом, и он забирает у меня и команды много времени, чтобы удержать вещи на статическом сайте. У меня есть подозрение, что это шаблонный движок и Ruby. Но это только я догадываюсь.

Я искал быстрых статических генераторов сайтов, и несколько человек из более широкой команды намекнули, что Hugo (написанный на Go) хорош, хорошо структурирован и также быстро.

Я не буду много ходить в Хьюго. Это статический генератор сайтов, который может глотать файлы Markdown (например, Jekyll) и выплевывать структурированный сайт на основе шаблонов, которые вы определяете.

Я перейду несколько быстрых пунктов:

  • Моя сборка Jekyll использовалась для 45 секунд +, сборка всего сайта Hugo составляет 300-450 мс. На 2 порядка быстрее.
  • Templating через язык программирования Go Go немного привык, но он намного чище *, чем Liquid.
  • Пагинация была довольно легко интегрироваться, хотя у меня были проблемы с документами.
  • Документы довольно сильные, есть несколько примеров, где примеры на странице, которые вы ожидаете быть связанными, не всегда могут иногда приводить к путанице.
  • Руководство по миграции Jekyll для простой сборки Jekyll доставило мне большую часть пути.
  • Hugo не поддерживал синтаксис именования файлов Jekyll (YYYY-MM-DD-title) для заказа сообщений, и мне пришлось написать сценарий миграции, чтобы добавить атрибут «date» на каждую страницу уценки, а также «slug» атрибут.
  • У меня было множество HTML-файлов, которые, похоже, не включались в массив .Site.Pages. Снова мне пришлось преобразовать их все с помощью простого сценария командной строки.

Тем не менее, производительность пылает, и мой блог намного быстрее и не имеет зависимостей Ruby.

Я не могу сказать, что мы переместим Основы Web в Hugo, это большая работа. Я очень доволен настройкой локального сборка и развертывания, который у меня есть сейчас.

Заголовок изображения: https://commons.wikimedia.org/wiki/File:Hellogoodbye_logo.svg

About Me: Paul Kinlan

I lead the Chrome Developer Relations team at Google.

We want people to have the best experience possible on the web without having to install a native app or produce content in a walled garden.

Our team tries to make it easier for developers to build on the web by supporting every Chrome release, creating great content to support developers on web.dev, contributing to MDN, helping to improve browser compatibility, and some of the best developer tools like Lighthouse, Workbox, Squoosh to name just a few.