diff --git a/layouts/partials/shortcodes/tab.html b/layouts/partials/shortcodes/tab.html index a14ce23dd7..20d4b334e9 100644 --- a/layouts/partials/shortcodes/tab.html +++ b/layouts/partials/shortcodes/tab.html @@ -1,5 +1,17 @@ +{{- $tabs := (slice | append (dict + "color" .color + "content" .content + "icon" .icon + "name" .name + "style" .style + "title" .title +)) }} {{- partial "shortcodes/tabs.html" (dict "context" .context + "color" "" + "content" $tabs "groupid" "" - "content" (slice | append (dict "name" (trim .name " ") "content" .content)) + "icon" "" + "style" "" + "title" "" ) }} \ No newline at end of file diff --git a/layouts/partials/shortcodes/tabs.html b/layouts/partials/shortcodes/tabs.html index 7054fa0759..df0743aa86 100644 --- a/layouts/partials/shortcodes/tabs.html +++ b/layouts/partials/shortcodes/tabs.html @@ -1,24 +1,74 @@ {{- $context := .context }} -{{- $tabs := .content | default slice }} {{- $groupid := .groupid | default (partial "make-random-md5.hugo" $context) }} +{{- $color := .color }} +{{- $style := .style }} +{{- $title := .title }} +{{- $icon := .icon }} +{{- $tabs := slice }} +{{- range $tab := (.content | default slice) }} + {{- if and (not $tab.title) $tab.name }} + {{- warnf "%s: parameter 'name' is deprecated for shortcode 'tab', use 'title' instead" $context.File.Path }} + {{- $tab = merge $tab (dict "title" .name) }} + {{- end }} + {{- with $tab }} + {{- $color := .color | default $color }} + {{- $style := .style | default $style | default (cond (ne .color "") "filled" "default") }} + {{- $title := .title | default ($style | T) }} + {{- $title = trim $title " " }} + {{- $icon := .icon | default "" }} + {{- if and (not $icon) (eq (len $icon) 0) }} + {{- if eq $style "info" }}{{ $icon = default "info-circle" }}{{ end }} + {{- if eq $style "warning" }}{{ $icon = default "exclamation-triangle" }}{{ end }} + {{- if eq $style "note" }}{{ $icon = default "exclamation-circle" }}{{ end }} + {{- if eq $style "tip" }}{{ $icon = default "lightbulb" }}{{ end }} + {{- end }} + {{- $icon = trim $icon " " }} + {{- if and $icon (not (findRE ".*?\\bfa-\\w.*?" $icon)) }} + {{- $icon = printf "fa-fw fas fa-%s" $icon }} + {{- end }} + {{- $tabs = $tabs | append (dict + "color" $color + "content" .content + "icon" $icon + "itemid" (printf "%s%s" ($title | $context.RenderString | plainify) ($icon | plainify)) + "style" $style + "title" $title + ) }} + {{- end }} +{{- end }} +{{- $color = .color | default "" }} +{{- $style = .style | default (cond (ne .color "") "filled" "default") }} +{{- $title = .title | default ($style | T) }} +{{- $title = trim $title " " }} +{{- $icon = .icon | default "" }} +{{- if and (not $icon) (eq (len $icon) 0) }} + {{- if eq $style "info" }}{{ $icon = default "info-circle" }}{{ end }} + {{- if eq $style "warning" }}{{ $icon = default "exclamation-triangle" }}{{ end }} + {{- if eq $style "note" }}{{ $icon = default "exclamation-circle" }}{{ end }} + {{- if eq $style "tip" }}{{ $icon = default "lightbulb" }}{{ end }} +{{- end }} +{{- $icon = trim $icon " " }} +{{- if and $icon (not (findRE ".*?\\bfa-\\w.*?" $icon)) }} + {{- $icon = printf "fa-fw fas fa-%s" $icon }} +{{- end }} {{- with $context }}
{{ end }} {{ .content | safeHTML }}