Files
estorozhenko 0fbc0f93a4 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
2026-09-20 19:23:06 +00:00

42 lines
2.2 KiB
HTML

{{- /* Серия: блок навигации по серии (как в Blowfish).
Использование: в single.html перед .post-content:
{{- partial "series_nav.html" . -}}
Пост помечается во front-matter:
series: ["Имя серии"]
series_order: 1
Выводит блок «Серия: N из M» со ссылками на предыдущую/следующую часть.
Если серий нет или пост не в серии — выводит пустоту.
*/ -}}
{{- $series := .Params.series -}}
{{- if $series -}}
{{- range $series -}}
{{- $seriesName := . -}}
{{- /* термины хранятся с URL-слизом: дооснастить и urlize, и lower */ -}}
{{- $slug := ($seriesName | urlize) -}}
{{- $term := (site.GetPage (printf "/series/%s/" $slug)) | default (site.GetPage (printf "/series/%s/" ($seriesName | lower | urlize))) -}}
{{- if not $term }}{{- $term = site.GetPage (printf "/series/%s" ($seriesName | lower)) -}}{{- end -}}
{{- if $term -}}
{{- $pages := (sort $term.Pages "Params.series_order" "asc") -}}
{{- $current := $.Params.series_order -}}
{{- $total := $pages | len -}}
{{- $idx := 0 -}}
{{- $prev := "" -}}
{{- $next := "" -}}
{{- range $i, $p := $pages -}}
{{- if eq $current $p.Params.series_order -}}
{{- $idx = add $i 1 -}}
{{- $prev = (index $pages (sub $i 1)) | default "" -}}
{{- $next = (index $pages (add $i 1)) | default "" -}}
{{- end -}}
{{- end -}}
<div class="series-nav" data-series="{{ $seriesName }}" data-order="{{ $current }}" data-total="{{ $total }}">
<div class="series-title">Серия: <a href="{{ $term.Permalink }}">{{ $seriesName }}</a></div>
<div class="series-progress">часть {{ $idx }} из {{ $total }}</div>
<div class="series-links">
{{- if $prev }}<a class="series-prev" href="{{ $prev.Permalink }}">← {{ $prev.Title }}</a>{{- end }}
{{- if $next }}<a class="series-next" href="{{ $next.Permalink }}">{{ $next.Title }} →</a>{{- end }}
</div>
</div>
{{- end -}}
{{- end -}}
{{- end -}}