f597beb5c4
.Page.Store.Add is broken in Hugo 0.158+ (returns nil). Additionally, Hugo renders shortcodes bottom-up, so the parent tabs.html cannot pass data to child tab.html via .Store. Fix: - shortcode-id partial: replace .Page.Store.Add with explicit .Page.Store.Set + add, which works in Hugo 0.161+. - tab.html: the first child tab generates a page-unique ID via the partial and caches it on .Parent.Store for siblings. - tabs.html: remove broken .Store.Set "id" line. This avoids the .Parent.Ordinal collision when tabs are nested inside other shortcodes (details, columns, etc.). Fixes #817
16 lines
596 B
HTML
16 lines
596 B
HTML
{{- if not .Ordinal -}}{{- /* first tab sets group ID */ -}}
|
|
{{- .Parent.Store.Set "id" (partial "docs/text/shortcode-id" .Parent) -}}
|
|
{{- end -}}
|
|
{{- $group := printf "tabs-%d" (.Parent.Store.Get "id") -}}
|
|
{{- $tab := printf "%s-%d" $group .Ordinal -}}
|
|
<input type="radio" class="toggle" name="{{ $group }}" id="{{ $tab }}" {{ if not .Ordinal }}checked="checked"{{ end }} />
|
|
{{- /* remove whitespaces */ -}}
|
|
<label for="{{ $tab }}">
|
|
{{- .Get 0 -}}
|
|
</label>
|
|
{{- /* remove whitespaces */ -}}
|
|
<div class="book-tabs-content markdown-inner">
|
|
{{ .Inner -}}
|
|
</div>
|
|
{{- /* remove whitespaces */ -}}
|