Files
HugoBlox-kit/modules/blox/layouts/_partials/components/toc.html
T
George Cushen f4280ddb1c refactor: rename modules and update migration docs
BREAKING CHANGE
Module paths moved to `github.com/HugoBlox/kit` with new names:
- core `blox-tailwind` → `blox`
- analytics → `analytics`
- netlify → `integrations/netlify`
- slides (reveal) → `slides`
Update go.mod, module.yaml/params, scripts, tests, and v0.11 migration guide accordingly.
2026-01-02 20:59:48 +00:00

75 lines
2.8 KiB
HTML

{{/* Table of Contents */}}
{{- $toc := .Params.toc | default true -}}
{{/* UI Text */}}
{{- $on_this_page := T "on_this_page" }}
{{- $edit_this_page := T "edit_page" }}
<nav class="hb-toc order-last hidden w-64 shrink-0 xl:block print:hidden px-4" aria-label="table of contents">
{{ partial "functions/get_hook" (dict "hook" "toc-start" "context" .) }}
{{- if $toc }}
<div class="hb-scrollbar text-sm [hyphens:auto] sticky top-16 overflow-y-auto pr-4 pt-6 max-h-[calc(100vh-var(--navbar-height)-env(safe-area-inset-bottom))] -mr-4 rtl:-ml-4">
{{- with .Fragments.Headings -}}
<p class="mb-4 font-semibold tracking-tight">{{ $on_this_page }}</p>
{{- range . -}}
<ul>
{{- with .Headings -}}{{ template "toc-headings" (dict "headings" . "level" 0) }}{{- end -}}
</ul>
{{- end -}}
{{- end -}}
{{- $class := "" -}}
{{- if .Fragments.Headings -}}
{{- $class = "mt-8 border-t dark:border-neutral-700 pt-8" -}}
{{- end -}}
{{/* Page Features */}}
{{- if site.Params.hugoblox.repository.url | and .Params.editable -}}
<div class="{{ $class }} sticky bottom-0 flex flex-col items-start gap-2 pb-8">
{{ $edit_url := site.Params.hugoblox.repository.url | default "" }}
{{ $branch := site.Params.hugoblox.repository.branch | default "main" }}
{{ $dir := site.Params.hugoblox.repository.content_dir | default "content" }}
{{- with .File -}}{{ $edit_url = urls.JoinPath $edit_url "edit" $branch $dir (replace .Path "\\" "/") }}{{- end -}}
{{- with .Params.edit_url -}}{{ $edit_url = . }}{{- end -}}
<a class="text-xs font-medium text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-100 contrast-more:text-gray-800 contrast-more:dark:text-gray-50" href="{{ $edit_url }}" target="_blank" rel="noreferer">{{ $edit_this_page }}</a>
</div>
{{- end -}}
{{ partial "components/backlinks" . }}
{{ partial "functions/get_hook" (dict "hook" "toc-end" "context" .) }}
</div>
{{ end -}}
</nav>
{{/* Render Headings */}}
{{- define "toc-headings" -}}
{{- $headings := .headings -}}
{{- $level := .level -}}
{{- if ge $level 4 -}}
{{ return }}
{{- end -}}
{{- $padding := (mul $level 4) -}}{{/* Requires inclusion in Tailwind safelist!! */}}
{{- $class := cond (eq $level 0) "font-semibold" (printf "pl-%d rtl:pr-%d" $padding $padding) -}}
{{- range $headings }}
{{- if .Title }}
<li class="my-2 scroll-my-6 scroll-py-6">
<a class="{{ $class }} inline-block text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-300 w-full break-words" href="#{{ anchorize .ID }}">
{{- .Title | plainify | htmlUnescape -}}
</a>
</li>
{{- end -}}
{{- with .Headings -}}
{{ template "toc-headings" (dict "headings" . "level" (add $level 1)) }}
{{- end -}}
{{- end -}}
{{- end -}}