Hugo - генератор статических сайтов

Динамические сайты позволяют очень много. Часто слишком много. Иногда слишком много ненужного и неиспользуемого. И за все неиспользуемые функции надо платить увеличением времени отклика, машинным временем, лишним электричеством, перегревом процессоров и, как следствие, глобальным потеплением. Позаботьтесь о природе - не используйте динамические сайты без необходимости.

Лозунги озвучены. Они прекрасны, но не писать же вручную ради спасения лишнего дерева сотни html-ок. Конечно, нет. Для генерации html уже придумано множество инструментов. Берем готовое и используем.

Один из самых популярных в последнее время инструментов - Hugo

Принцип его работы очень прост. Создается некий шаблон сайта со своим дизайном, сеткой, стилями, js. Наполнение сайта пишется в любом текстовом редакторе в markdown-формате. Затем запускается Hugo, который собирает из шаблона и текстовых статей готовые html-ки и сохраняет их в подпапке public. После чего, остается только залить получившийся статический сайт на сервер.

В качестве бонуса Hugo умеет локально запускать web-сервер с черновой версией сайта. Достаточно в папке проекта сайта набрать:

hugo server -w

Теперь, набрав в браузере http://localhost:1313, можно видеть внесенные локально изменения. Флажок -w указывает на то, что при изменении каких-либо файлов, сайт будет автоматически перегенерирован и перегружен в браузере.

Переписывать справку нет большого смысла, но хочется остановиться на нескольких моментах, которые меня при первом знакомстве c Hugo поставили в тупик.

Во-первых, у текущей версии Hugo нет шаблона по умолчанию. Т.е. чтобы генерация сайта заработала нужно обязательно скачать какой-либо готовый шаблон и прописать его в файле конфигурации. Мне понравилась тема Hyde. Скачиваем её.

mkdir themes
git clone https://github.com/spf13/hyde themes/hyde

В файле config.yaml прописываем:

theme: "hyde"

params:
  themeColor: "theme-base-08"

Во-вторых, список параметров в файле конфигурации сильно зависит от используемого шаблона. Есть реальные шансы, что задав в конфигурации список пунктов меню, для каких-то шаблонов мы ничего не увидим. Просто потому, что данные шаблоны вообще не предусматривают отображение меню. Читаем внимательно справку не только по самому Hugo, но и по каждому используемому шаблону. Там может найтись много интересного.

В-третьих, сервер Hugo по умолчанию генерирует сайт в памяти. Учитывая перегенерацию сайта “на лету”, это очень полезная функция. Беда в том, что в текущей версии она работает не везде и не всегда. “Чинится” принудительным отключением при запуске сервера.

hugo server --renderToDisk

В целом, уже сейчас Hugo - удобный и функциональный инструмент для создания статических сайтов. А учитывая, что он активно развивается не только силами автора, но и уже достаточно многочисленным сообществом, можно прогнозировать ему достаточно счастливое будущее. А мы всё-таки спасем с его помощью несколько деревьев.

Comments

© 2016. All rights reserved.