Первая запись в wordpress блоге датируется декабрем 2009. Видимо в это время мне стало понятно, что поддерживать контент-менеджмент в написанном на Parser 3 сайте nexus.org.ua стало накладно и я сделал выбор в пользу популярного движка блогов wordpress. Надо признать, под влиянием medium он сильно прибавил в юзабилити и редактировать посты стало в нем одно удовольствие.
Как видите на 2009 год я считал, что поднять mysql и запустить php было очень хорошей идеей. Все это так, пока ты не становишься старше и не принимаешь решение, что поддержкой wordpress ты заниматься не хочешь, потому что:
В какой-то момент не хочется заниматься поддержкой всех этих технологий, а хочется просто писать в блог.
Чем старше становишься, тем больше ценишь простоту, в которой, как известно, гениальная истина.
Так на арене появился Hugo, отчасти еще и потому, что совпал с моей возрастающей заинтересованностью программированием на Go.
Вот мой новый стек:
К слову это не первый подход к выбору движка. Сначала мне понравилась идея с Perun, написанный на clojure модуль для системы сборки boot, которая позволяет функционально расширить его еще и до статического генератора сайтов. Присматривался на Jekyll, который, как известно на Ruby, а Ruby это наше все.
Сначала я сделал перепроектирование https://it-premium.com.ua на Hugo вместо RoR, и сразу понял, это - то что нужно! Во-первых статика это то, во что так или иначе переходит каждый сайт когда его рендером занимается браузер. Быстрее чем статический сайт сделать нельзя, хотя многие пытаются, используя Javascript-based фреймворки на подобие Gatsby.
Hugo поддерживает не только markdown, но и различные продвинутые сценарии, так в странице “Путешествую” список стран и мест находится в YAML файле и включается из Markdown при помощи custom tag. На каждой странице список друзей также стал формироваться из отдельного YAML. Кстати, уже никто не обменивается ссылками как раньше?
мой trips.yaml файл, рендер которого вы можете увидеть здесь
- date: 2020
place: Испания, Барселона
comment: увы и ах, из-за короны-19 отменена :(
- date: 2019-2020
place: Норвегия, Аскер
duration: 2 недели
- date: 2019
place: Германия, Фрайбург
duration: 3 дня
- date: 2019
place: Австрия, Вена, 1 месяц
duration: 1 месяц
- date: 2019
place: Турция, пригород Анталии 1 неделя
duration: 2 недели
- date: 2019
place: Германия, Берлин
duration: 3 дня
- date: 2019
place: Сицилия, гастротур
duration: 6 дней
- date: 2018-2019
place: Таиланд, о. Самуи
duration: полгода
- date: 2018
place: Италия (Тоскана), гастротур
duration: 6 дней
- date: 2018
place: Финляндия (Юваскюля, Хельсинки)
duration: 3 дня
- date: 2018
place: Германия, Гамбург
duration: 3 дня
- date: 2017
place: Германия, Маннгейм, Штуттгарт
duration: 1 месяц
- date: 2016
place: Египет (Хургада), Турция (Стамбул)
- date: 2013-2014
place: Тайланд (Бангкок, Айютайя, Паттайя) [Камбоджа (Сиам-Реап, Сиануквиль, Баттамбанг, Кампот, Пном-Пень)][1]
- date: 2012
place: Малайзия (Куала-Лумпур, о. Тиоман) Филиппины (о. Боракай, о. Палаван (Ель-Нидо, Пуерто-Принсесса)) Индонезия (о. Сулавеси, Тогеанские о-ва (о. Маленге, о. Бомба), Тана-Тораджа (Рантепао + окрестности), Макассар, о. Бали)
- date: 2011
place: Сингапур Вьетнам (Хошимин, Ханой, Хью, ) Индонезия (о. Бали, о. Ломбок, о. Ява (плато Диенг, Джогджакарта, вулкан Иджен)
- date: 2010
place: Индонезия (о. Ява (вулкан Бромо) о. Бали)
- date: 2009
place: Тайланд (Бангкок, о. Чанг)
- date: 2008
place: Египет (Шарм-Ель-Шейх, Каир (пирамидки))
а рендерит его вот такой простой кусочек в layouts/shortcodes/travel.html
<ul>
{{ range $.Site.Data.travel }}
<li>
{{.date}} {{.place}} {{.duration}} {{.comment}}
</li>
{{ end }}
</ul>
Все линки для навигации сверху берутся из соответствующих мета-полей в файлах в каталоге content/pages. Достаточно просто создать там новый файл с содержимым и он автоматически появится в меню!
Для миграции всего контента с блога wordpress я воспользовался соответствуюей утилитой.
Остался вопрос с комментариями, и он также решается при помощи известного disqus. Дорогой читатель, подскажи, если знаешь engine получше.
Мне нравится эта элегантная простота, скорость рендера и общее удовольствие от процесса, а редактировать Markdown можно любым из редакторов по вкусу. Мой выбор - emacs.
P.S Так как мой выбор - emacs, то я могу публиковать заметки прямо в формате org-mode!