feat: series-таксономия, переключатель темы вправо, соцсети в меню

- hugo.toml: [taxonomies] series = "series"; [params.socialIcons] (github, telegram, rss)
- layouts/partials/series_nav.html: модуль «Серия: N из M» с навигацией prev/next
  (сортировка по series_order), поддержка кириллических названий серий
- layouts/_default/single.html: override темы — подключение series_nav перед контентом
- layouts/partials/extend_footer.html: JS переносит .logo-switches из .logo в конец
  .nav (переключатель темы — справа после меню); server-rendered блок соцсетей
  переносится к меню; иконки — через штатный svg.html темы (github/telegram/rss)
- assets/css/extended/typewriter.css: стили .social-icons-inline, .series-nav;
  .logo-switches после переноса попадает под .nav > .logo-switches (order:2)

Closes openspec change series-taxonomy-and-header
This commit is contained in:
2026-09-20 19:23:06 +00:00
parent 1f58f8ccc7
commit 0fbc0f93a4
9 changed files with 376 additions and 9 deletions
@@ -0,0 +1,29 @@
# Proposal: Серии постов (series), переключатель темы справа, соцсети в меню
## Why
Три улучшения шапки и контента dedinit.ru:
1. **Таксономия `series`** (как в Blowfish): сгруппировать посты в серии.
Статья, помеченная `series`, показывает на странице модуль серии со
ссылками на другие части (навигация «Серия: N из M»). Без новых сущностей
контента — только taxonomies + вывод.
2. **Переключатель темы (солнце/луна) — вправо, рядом с меню**. Сейчас он
вложен в `.logo` (структура PaperMod) и не перемещается CSS-селектором
`.nav > .logo-switches`. Нужен перенос элемента в конец `.nav` (после
`#menu`) — через JS-инжект в `extend_footer.html` (штатный хук темы),
чтобы не трогать саму тему.
3. **Иконки соцсетей в верхнем меню**. Стандартные `[params.socialIcons]`
(как в Blowfish) рендерятся партиалом `social_icons.html`, но он вызывается
только в профиле/на главной. Нужно вывести иконки (github, telegram,
mastodon, rss) в шапку рядом с меню — через the same JS-инжект.
## User-Facing Behavior
- В `hugo.toml` появляется `[taxonomies] series = "series"`.
- Пост с `series: ["Имя"]` и `series_order: N` показывает в начале контента
блок «Серия: Имя (N)» со ссылками на предыдущую/следующую часть.
- В шапке солнце/луна стоит справа, сразу после пунктов меню.
- Рядом с меню — иконки соцсетей (из `[params.socialIcons]`).