Hugo

Я довольно давно не трогал сайт, но недавно после переустановки Линукса я решил обновить Hugo до последней версии, и… обнаружил, что мой сайт поломан в нескольких местах.

  1. Мне пришлось переместить большую часть параметров в языковых разделах в подраздел params. В общем-то, hugo serve предупреждает о том, какие параметры не там, так что это не шибко проблема.
  2. Я убрал taxonomyTerm из раздела outputs в конфиге. Как я понял, это всё с taxonomy заодно теперь, и поэтому смысла в отдельном параметре нет.
  3. Мне пришлось приводить ключи категорий в теме в нижний регистр. В 0.123.3 появилась настройках capitalizeListTitles (т.е. font-patching превратилось в Font-Patching). Кому-то это удобно, но мне же это сломало локализацию, потому что она опиралась на ключи, которые были в нижнем регистре. По правде говоря, приведя категории в нижний регистр, я несколько поторопился, потому что можно было просто отключить настройку, но в какой-нибудь момент может произойти проблема, что где-то что-то будет не в том регистре, и всё сломается, поэтому это даже к лучшему.

Но зато теперь всё сгенерено свежим Hugo 0.126.1, и работает как надо. Я думаю как-нибудь написать тему для Hugo, но это уже, скорее всего, будет нескоро.

Раз уж я заговорил о локализации, то эту заметку я посвящу локализации. Я, честно говоря, не в курсе, с какой версии это произошло, но локализация в Hugo сильно шагнула вперёд.

Во-первых, Hugo поддерживает теперь нативно количественные для немалого количества языков, включая русский. Всё благодаря модулю https://github.com/gohugoio/go-i18n (форку https://github.com/nicksnyder/go-i18n ). Пользоваться очень просто: в файле локализации создаёте нужные ключи и вписываете всё в них. Вот текущий список для справки (с двузначными кодами языков): https://github.com/gohugoio/go-i18n/blob/main/v2/internal/plural/codegen/plurals.xml

Во-вторых, Hugo теперь умеет в локализацию дат через функцию time.Format ФОРМАТ_ДАТЫ ДАТА. Мне немного пришлось переписать шаблоны, и теперь там места с датой из таких:

{{- with .Site.Params.dateformat | default "2006-01-02" | .PublishDate.Format -}}

превратились в такие:

{{- with time.Format (.Site.Params.dateformat | default "2006-01-02") .PublishDate -}}

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