{{/* Check parameter types */ -}} {{ with .Get "langEqualsHeader" -}} {{ if ne ( printf "%T" . ) "bool" -}} {{ errorf "Shortcode %q: boolean value expected for parameter %q, but got %s. Error position: %s" $.Name "langEqualsHeader" (printf "%T" .) $.Position -}} {{ end -}} {{ end -}} {{ with .Get "text" -}} {{ if ne ( printf "%T" . ) "bool" -}} {{ errorf "Shortcode %q: boolean value expected for parameter %q, but got %s. Error position: %s" $.Name "text" (printf "%T" .) $.Position -}} {{ end -}} {{ end -}} {{ with .Get "persistLang" -}} {{ if ne ( printf "%T" . ) "bool" -}} {{ errorf "Shortcode %q: boolean value expected for parameter %q, but got %s. Error position: %s" $.Name "persistLang" (printf "%T" .) $.Position -}} {{ end -}} {{ end -}} {{ with .Get "right" -}} {{ if ne ( printf "%T" . ) "bool" -}} {{ errorf "Shortcode %q: boolean value expected for parameter %q, but got %s. Error position: %s" $.Name "right" (printf "%T" .) $.Position -}} {{ end -}} {{ end -}} {{/* Set values given defined within tabpane */ -}} {{ $langPane := default "" ($.Get "lang") -}} {{ $hloptionsPane := default "" ($.Get "highlight") -}} {{ $textPane := default false ($.Get "text") -}} {{ $langEqualsHeader := default false ($.Get "langEqualsHeader") -}} {{ $persistLang := default true ($.Get "persistLang") -}} {{ $rightPane := default false ($.Get "right") -}} {{ $activeSet := false -}} {{- /* Scratchpad gets populated through call to .Inner */ -}} {{- .Inner -}} {{ $langs := slice -}} {{ $duplicate := false -}} {{ $duplicateLang := "" -}} {{ $Ordinal := $.Ordinal -}} {{ if ge hugo.Version "0.93.0" -}} {{ if .Page.Store.Get "Ordinal" -}} {{ $Ordinal = .Page.Store.Get "Ordinal" -}} {{end -}} {{ end -}} {{/* Nav tabs */ -}} {{ if $duplicate -}} {{ warnf "Shortcode %q: duplicate language %q detected, disabling persistance of language to avoid multiple tab display. Position: %s" $.Name $duplicateLang $.Position -}} {{ end -}} {{ $duplicate = false -}} {{ $langs = slice -}} {{ $activeSet = false -}} {{/* Tab panes */ -}}
{{- range $index, $element := $.Scratch.Get "tabs" -}} {{ $lang := $langPane -}} {{ if $langEqualsHeader -}} {{ $lang = $element.header -}} {{ end -}} {{ with $element.language -}} {{ $lang = . -}} {{ end -}} {{ $disabled := false -}} {{ with $element.disabled -}} {{ $disabled = . -}} {{ end -}} {{ $hloptions := $hloptionsPane -}} {{ with $element.highlight -}} {{ $hloptions = . -}} {{ end -}} {{ $text := $textPane -}} {{ with $element.text -}} {{ $text = . }} {{ end -}} {{ $tabid := printf "tabs-%02v-%v-tab" $Ordinal $index | anchorize -}} {{ $entryid := printf "tabs-%02v-%v" $Ordinal $index | anchorize }}
{{ if $text -}} {{ index . "content" -}} {{ else -}} {{ highlight (trim (index . "content") "\r\n") $lang $hloptions -}} {{ end }}
{{- if not $disabled -}} {{ $activeSet = true -}} {{ end -}} {{- end }}