Переезд на Hugo
Содержание
После многолетнего перерыва я решил возобновить ведение блога. Cтарый блог я забросил
в один прекрасный момент, когда решил написать свой генератор статических сайтов на
основе Org mode взамен используемому мной форку генератора org-page
. Писать новые статьи
планировалось параллельно с запилом своего генератора, но в итоге дальше самой идеи и
нескольких коммитов в форк org-page
дело так и не пошло.
Недавно возросшее с новой силой желание чего-нибудь написать заставило меня вернуться к теме блога. Трезво оценив свои шансы создать за приемлемое время с нуля генератор статических сайтов, удовлетворяющий мои потребности, я отказался от этой затеи. Так как я большой фанат Emacs и Org mode, я решил разузнать, как поменялись в среде Org mode за это время дела на фронте блогинга.
Проглядев список генераторов для файлов .org
, я не нашёл подходящего решения, которое
работало бы нативно в Emacs (а оригинальный org-page
вообще за это время прекратил
и без того не особо активное развитие). К моему удивлению, довольно-таки
продвинутый и активно развиваемый сообществом генератор статических сайтов Hugo,
написанный на Go, недавно обзавёлся вполне сносной встроенной поддержка формата
Org-mode с внедрением библиотеки парсинга и рендеринга Org mode-файлов go-org. Так
как список поддерживаемых им фич, из-за которых я и задумал изначально переписать
org-page
(быстрая публикация, развитая система управления коллекциями, live
reloading), меня полностью удовлетворял, я решил остановиться на этом проекте.
Установка
Так как я использую пакетный менеджер Nix, то для установки зависимостей для ведения
блога я воспользовался nix-shell
. Pinned-версия nixpkgs
(на ):
Так как версия Hugo с новой библиотекой go-org
ещё не вышла, мне пришлось опакетить
текущую development-версию. Для этого я взял за основу официальный пакет и изменил
атрибут src
:
И, наконец, конфигурация nix-shell
:
Настройка
Создав новый блог с помощью команды hugo new site
, я первым же делом установил тему
Terminal (green):
$ git submodule add \
https://github.com/panr/hugo-theme-terminal.git themes/terminal
Начав писать эту запись, я между делом менял конфигурацию Hugo и темы:
Так как тема некорректно отображала подписи к коду и сноски (footnotes), я создал
файл static/style.css
, в котором переопределил некоторые стили. Также я скачал
кастомную сборку Prism (библиотеки подсветки синтаксиса), изменив список
поддерживаемых языков и плагинов, и сохранил её в static/assets/prism.js
.
Результат
Исходники нового блога можно посмотреть здесь. В следующих постах я опишу процесс миграции старых записей и деплой блога.