Начало работы с Hugo

Published October 19, 2020

Создание блога с помощью Hugo. В последнее время статические сайты стали очень популярны. Вероятнее всего, это связано с тем, что их довольно легко поддерживать, а для публикации доступно множество платформ. Если раньше для создания статического сайта приходилось работать непосредственно с HTML, то сейчас для большинства задач достаточно знания Markdown. Сайты на Hugo отлично подходят для персональных страниц, содержимое которых не нужно обновлять слишком часто. Hugo — это набор инструментов, позволяющий генерировать статический сайт из Markdown-файлов и шаблонов. Мне также нравится, что существуют готовые Docker-образы: с ними можно создать и собрать сайт, не устанавливая Go, Hugo и другие компоненты локально.

Итак, приступим. Если у вас установлен Linux и Docker (docker.com), потребуется выполнить всего несколько шагов. Создайте пустой сайт в каталоге vasylchenko.me следующей командой:

docker run --rm -it -v $(pwd)/:/src klakegg/hugo:ext new site vasylchenko.me

Затем перейдите в созданный каталог командой cd vasylchenko.me. После этого инициализируйте Git-репозиторий для контроля версий:

git init

Теперь пора выбрать тему. Список популярных тем можно найти на сайте themes.gohugo.io. Например, для этого сайта я выбрал тему Devise. Перейдите на страницу темы, а затем выполните следующую команду:

git submodule add https://github.com/austingebauer/devise themes/devise

Она добавит репозиторий темы в каталог themes нашего сайта как Git submodule.

Теперь у нас есть каталог самого сайта vasylchenko.me и каталог темы vasylchenko.me/themes/devise. Далее необходимо указать выбранную тему в конфигурации Hugo. Это можно сделать вручную или с помощью команды:

echo 'theme = "devise"' >> config.toml

Остаётся собрать сайт и проверить результат:

docker run --rm -it -v $(pwd):/src klakegg/hugo:ext

После сборки откройте каталог vasylchenko.me/public и запустите файл index.html в браузере. Если сайт выглядит так, как ожидалось, содержимое каталога можно загрузить на статический хостинг.