{{- /* Create a tabbed interface with the given items. @example {{< tabs >}}...{{< /tabs >}} */ -}} {{- /* Unused, but required for the shortcode to work. */ -}} {{- .Inner -}} {{- /* Enable syncing of tabs across the page. */ -}} {{- $enableSync := false -}} {{- if or (eq .Page.Params.tabs.sync false) (eq .Page.Params.tabs.sync true) -}} {{- $enableSync = .Page.Params.tabs.sync -}} {{- else -}} {{- $enableSync = site.Params.page.tabs.sync | default false -}} {{- end -}} {{- $tabs := ($.Store.Get "tabs") | default slice -}} {{- /* Compatibility with previous parameter "items". */ -}} {{- if .Get "defaultIndex" -}} {{- warnf "The 'defaultIndex' parameter of the 'tabs' shortcode is deprecated. Please use 'selected' on 'tab' instead." -}} {{- end -}} {{- if .Get "items" -}} {{- warnf "The 'items' parameter of the 'tabs' shortcode is deprecated. Please use 'name' on 'tab' instead." -}} {{- $items := split (.Get "items") "," -}} {{- $temp := slice -}} {{- range $i, $item := $items -}} {{- $tab := index $tabs $i -}} {{- $temp = $temp | append (merge $tab (dict "name" $item)) -}} {{- end -}} {{- $tabs = $temp -}} {{- end -}} {{- partial "shortcodes/tabs" (dict "tabs" $tabs "enableSync" $enableSync "id" .Ordinal) -}}