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

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

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

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

Общие сведения

Hugo написан на ныне популярном языке Golang и распространяется бесплатно по лицензии Apache License Version 2.0. Проект опубликован на Github и на момент написания статьи имел 762 Контрибьютера и около 360 активных пользователей, которые так или иначе вносят вклад в проект. К сожалению о происхождении названия Hugo мне узнать не удалось, хотя интересно что оно под собой подразумевает. Ясно что частица go на конце это отсылка к языку программирования Golang, а вот с Hu вопрос остается открытым. Движок подходит как для создания статических сайтов типа этого, так и для более сложных проектов или порталов. Нужно понимать что это такой “крутой” статический генератор.

Возможности Hugo

С одной стороны это конструктор сайтов или блогов, с другой это целый фреймворк для создания сайтов и блогов и вот почему:

Исходя из последнего пункта, я могу сказать, что он подходит и начинающим веб мастерам. С помощью всего нескольких команд можно собрать простой сайт и наполнять его, только лишь владея терминалом операционной системы, без знаний HTML или каких либо языков программирования. Однако стоит заметить, что если готового шаблона недостаточно, то знания HTML и CSS все же понадобятся. Обычно веб-мастера среднего уровня уже владеют этими знаниями и вполне способны разобраться с документацией проекта и сделать уже что то посложнее и интереснее шаблонного решения.

Создаем простейший сайт на Hugo

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

Установка необходимых пакетов

Hugo поддерживает несколько популярных пакетных менеджеров для Windows, поэтому выбираем один из способов

choco install hugo-extended
scoop install hugo-extended
winget install Hugo.Hugo.Extended

Ну и конечно есть готовые сборки под Docker

docker pull klakegg/hugo

Далее нужно установить GIT

Для Linux’а же есть почти на все популярные платформы, поэтому берем под свою и ставим, ссылки я оставлю внизу, а покажу на примере Debian

sudo apt install hugo

После установки нужно будет проделать всего несколько действий чтобы получился сайт и ваш коструктор сайта был готов к дальнейшей работе, итак поехали:

hugo new site quickstart
cd quickstart
git init
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke themes/ananke
echo "theme = 'ananke'" >> config.toml
hugo server

После этой команды мы увидим в терминале примерно следующую информацию:

Start building sites … 
hugo v0.92.2+extended linux/amd64 BuildDate=2023-01-31T11:11:57Z VendorInfo=ubuntu:0.92.2-1ubuntu0.1

                   | EN  
-------------------+-----
  Pages            |  7  
  Paginator pages  |  0  
  Non-page files   |  0  
  Static files     |  1  
  Processed images |  0  
  Aliases          |  0  
  Sitemaps         |  1  
  Cleaned          |  0  

Built in 77 ms
Watching for changes in /home/user/projects/quickstart/{archetypes,content,data,layouts,static,themes}
Watching for config changes in /home/user/projects/quickstart/config.toml, /home/user/projects/quickstart/themes/ananke/config.yaml
Environment: "development"
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop

После этого переходим в браузер и переходим по адресу http://localhost:1313/ и видим

В целом пот и простой, хоть и пустой сайт у нас уже собрался и мы его видим в своем браузере. Теперь нужно заняться наполнением и простейший сайт на конструкторе Hugo готов.

Для добавления контента используется команда

hugo new posts/my-first-post.md

Она создаст в папке проекта файл content/posts/my-first-post.md с содержимым:

---
title: "My First Post"
date: 2022-11-20T09:03:20-08:00
draft: true
---

Этот самый файл и будет нашим первым постом на сайте. Здесь можно добавлять мета теги такие как description, title уже есть, нужно только заполнить по вкусу поисковых систем, а так же добавить сам контент страницы. Файл в разметке Markdown, что очень удобно, так как имея любой редактор Markdown на своем компьютере или даже онлайн, можно легко сконвертировать текст из формата .docx в этот без проблем, просто скопировав и вставив.

Заполним файл вот таким содержимым:

---
title: "My First Post"
date: 2022-11-20T09:03:20-08:00
draft: true
---
## Introduction

This is **bold** text, and this is *emphasized* text.

Visit the [Hugo](https://gohugo.io) website!

Сохраним файл и запустим сервер с новым параметром, который будет рендерить в том числе черновики постов:

hugo server -D

Теперь мы увидим наш пост прямо на главной странице.

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

hugo

После нее в папке проекта появится папка public в которой и будет статическая сборка вашего сайта, которую можно просто перенести на сервер и ваш сайт окажется в общем доступе в интернете.

Теперь мы увидим наш пост прямо на главной странице.

Заключение

Надо сказать, что для создания сайта с уникальным дизайном или какими-то дополнительными требованиями к нему уже нужно изучать документацию проекта. Возможности очень обширные, шаблонизатор просто пушка, может собрать для вас все что угодно вашему воображению, но нужно уже подробно и внимательно читать и изучать как это работает, здесь уже нужен опыт работы с HTML и CSS, но повторюсь, что думаю, что среднему специалисту в деле веб мастерства это вполне под силу.

Естественно я рассмотрел не все возможности программы, а только лишь самые основы. Но, если вы проявите интерес к ней, будете писать в наш телеграм канал, или здесь в комментариях под статьей, я могу отдельно рассмотреть ваши кейсы работы с конструктором сайтов Hugo под ваши нужды. Спасибо что дочитали!

Ссылки

🖥️ Linux | MacOs | Windows

🌐 Официальный сайт

📂 Исходный код

📃 Лицензия Apache-2

📓 Документация проекта

comments powered by Disqus