Основательный и бесповоротный переезд

Привет, %username%! Думаю многие заметили, что меня тут давненько не было. Всякое разное за это время произошло и в числе прочего этот переезд, о котором будет дальше…
🔄 Обновлено 2026-05-15: историю переезда оставляю как есть. В конце добавил короткий блок «Что изменилось с 2019-го» — про переход на PaperMod, текущий submodule-сетап (и что в 2026-м осмысленно смотреть в сторону Hugo Modules) и деплой через GitHub Actions с
rsyncпод капотом.
Причина#
Причина довольно таки простая: мне перестал нравиться стандартный редактор Wordpress, который они благополучно выкатили в последних версиях. Собственно по причине того, что я не сдружился с новым редактором и не было тут постов. Все банально и просто.
Можно было бы изучить его и все вот это вот, но мне тупо леень разибраться в новой технологии для написания постов в собственный бложик. Поэтому и было принято решение о перезде.
Вариант не обновляться я не рассматривал ибо Wordpress сам по себе довольно глючен и дыряв. Поэтому я ушел в глубокие посики себя и смысла жизни вообще.
Нашел, попробовал, пошел искать#
Собственно во время поисков были рассмотренны самые разные варианты того, куда я могу перенести свой блог. В числе прочих были рассмотрены следующие варианты:
- Свой движок на
PHP– Сосбвенно почему не взялся за такое развитие событий думаю и так понятно: таких костылей вагон и маленькая тележка на просторах тырнета. Эта идея была довольно быстро выкинута из головы; - Свой блог на
Flask/Django– Попробовал и то и другое. Слишком много телодвижений для достижения цели, а я писец какой ленивый; - Любой другой движок из популярны – Не особо искал, но из найденого как-то быстро все приелось и так же не понравилось;
Ghost– Попробовал и скажу, что мне понравилось почти все. Были некоторые моменты, которые меня мягко говоря не воодушивили:Node.js, ограниченность бесплатной версии и в целом неткорые мелочи, которые в принципе можно было опустить и не обращать внимания;Hugo– Нашел и мне понравилось сразу и все!
Сформировались мои хотелки#
То что я искал должно было отвечать сразу целой пачке требований, которые я выставлял перед новым “движком” для своего бложика:
- Я хочу писать посты в
Markdown; - Я хочу писать их прямо в консоли в любимом
vimилиVSCode; - Я хочу очень легко и просто закидывать свои посты на свой сайт;
- Мне нужна автоматизация и простота в управлении;
Начал разбираться с Hugo#
Понравилось то, что я просто пишу свой пост и запускаю генерацию статических страниц. Сам смысл статических страниц мне очень понравился. Никаких движков и прочего, а как известно чем проще, тем лучше: в простых вещах нечему ломаться. Сложно взломать обычный HTML.
Написание нового поста сводится к нескольким простым действиям:
- Создать шаблон поста командой:
hugo new post/2019-07-20_23-00.md- Далее открыть в любимом редакторе созанный шаблон поста:
code ./content/post/2019-07-20_23-00.md- Написать пост;
- Задеплоить его с помощью простейшего скрипта:
#!/bin/bash
hugo && rsync -avz --progress --delete public/ my_site:~/public_html
exit 0- Получить эстетическое удовольствие от простоты;
Все оказалось даже проще, чем я думал изначально.
Что изменилось с 2019-го#
История выше — про самый первый переезд. С тех пор инфраструктура блога ещё несколько раз эволюционировала, и мне есть что добавить.
Тема: PaperMod#
На текущий момент блог живёт на теме PaperMod
— она даёт всё, что хотелось от темы для технического блога: тёмная/светлая тема, ToC, поиск через fuse.js, OpenGraph, профиль автора, аккуратная типографика. В hugo.yaml это сводится к одной строке theme: PaperMod. Текущий конфиг блога — hugo.yaml на гитхабе
.
Темы — пока submodule, но Hugo Modules уже стучатся#
Я до сих пор подключаю темы через git submodule — это рабочая схема, особенно если ты иногда правишь тему под себя и держишь свой форк. Но для новых сайтов в 2026-м осмысленный путь — это Hugo Modules
поверх Go modules:
hugo mod init github.com/your/site
hugo mod get github.com/adityatelange/hugo-PaperModИ в конфиге:
module:
imports:
- path: github.com/adityatelange/hugo-PaperModОбновление — hugo mod get -u. Никаких git submodule update --init --recursive, никакого submodules: true в CI-чекаутах. Я свой setup пока не переписываю — submodule работает и менять рабочее ради «красивее» лень, но если ты начинаешь с нуля — иди сразу через Modules.
Деплой через GitHub Actions + rsync#
В исходном посте у меня был локальный shell-скрипт с hugo && rsync. Сейчас та же логика живёт в GitHub Actions
— пуш в main запускает workflow, который
дёргает мой же action jtprogru/hugo-rsync-deployment
. Под капотом он по-прежнему делает hugo --minify + rsync --archive --compress --delete на VPS — никакого GitHub Pages, никаких CDN-провайдеров, просто свой сервер с Nginx.
Сверху повешены ещё две полезные мелочи:
- после успешного деплоя
curlпингует Yandex Webmaster, чтобы он быстрее переиндексировал sitemap; - через appleboy/telegram-action в личный Telegram падает уведомление об успехе/провале деплоя.
То есть rsync никуда не делся — он просто переехал из ~/deploy.sh в облако.
Что ещё стоит знать#
- Hugo сильно ускорился за эти годы. На текущей версии 0.161 сборка ~140 постов занимает секунды. Если сидишь на чём-то старом 0.7x — обнови, особенно ради
--gc --minifyи нормальной обработки изображений. - Goldmark + math passthrough. В
hugo.yamlтеперь можно прокинуть\(...\)/$$...$$в KaTeX/MathJax без шорткодов — у меня это включено для постов с формулами. enablegitinfo: true— Hugo берётlastmodиз git-истории, удобно для технического блога с регулярными правками. Тоже стоит у меня в конфиге.
Итоги#
Приводить тут как именно надо “готовить” Hugo я не вижу смысла ибо в тырнетах много различных статей и видео на эту тему.
Да есть вещи, которыми пришлось пожертвовать и это комментарии в Disqus
. И хотя в Hugo тоже есть поддержка и интеграция с серивсом Disqus, мне стало просто лень заморачиваться. Возможно я верну комментарии позже, а возможно и не верну их никогда и оставлю только ссылки на чатики в Telegram и в Slack.
Если у тебя есть вопросы, комментарии и/или замечания – заходи в чат , а так же подписывайся на канал .
О способах отблагодарить автора можно почитать на странице “Донаты ”.