Створення блогу з Hugo. Останнім часом статичні сайти стали дуже популярними. Це, швидше за все, тому що їх досить легко підтримувати, і є багато платформ для їх публікації. Наприклад, якщо раніше потрібно було працювати з HTML для створення статичних сайтів, то зараз знань markdown буде достатньо для більшості завдань. Сайти на Hugo чудово підходять для персональних сторінок, коли вам не потрібно часто оновлювати контент. Hugo - це набір інструментів, який дозволяє генерувати статичний сайт з файлів markdown та шаблонів. Мені також дуже подобається наявність Docker образів, які можуть створювати та збирати сайт без встановлення Go, Hugo та інших компонентів.
Отже, почнемо.
Якщо у вас встановлено Linux з Docker (https://www.docker.com), вам потрібно виконати лише кілька кроків.
Створіть порожній сайт у папці vasylchenko.me за допомогою цієї команди:
docker run --rm -it -v $(pwd)/:/src klakegg/hugo:ext new site vasylchenko.me
Далі перейдіть до цієї папки командою cd vasylchenko.me.
Після цього нам потрібно створити Git-репозиторій для контролю версій.
Для цього виконайте команду git init.
Час вибрати тему. Список доступних популярних тем можна переглянути за посиланням https://themes.gohugo.io.
Наприклад, я обрав тему https://themes.gohugo.io/devise/.
Перейдіть за посиланням на головну сторінку теми і виконайте команду
git submodule add https://github.com/austingebauer/devise themes/devise
, щоб встановити тему.
Ця команда додасть тему з репозиторію в папку themes нашого сайту.
Отже, у нас є папка з сайтом vasylchenko.me і папка з темою vasylchenko.me/themes/devise.
Тепер потрібно додати рядок до конфігураційного файлу, вказуючи обрану тему.
Це можна зробити, відредагувавши файл або виконавши команду
echo 'theme = "devise"' >> config.toml
.
Нарешті, давайте зберемо сайт і перевіримо результат.
docker run --rm -it -v $(pwd):/src klakegg/hugo:ext
Тепер ви можете перейти до папки vasylchenko.me/public і відкрити файл index.html у своєму веб-браузері.
Якщо сайт виглядає так, як очікувалося, його можна завантажити на статичний хостинг.