{{- $context := .context -}} {{- $color := .color | default "" -}} {{- $content := .content -}} {{- $href := (trim .href " ") | default "" -}} {{- $style := .style | default "default" -}} {{- if and (not $color) (eq (len $color) 0) -}} {{- $style = .style | default "transparent" -}} {{- end -}} {{- $target := .target | default "" -}} {{- $type := .type | default "" -}} {{- $isButton := false -}} {{- if or (not $href) (strings.HasPrefix $href "javascript:") -}} {{- $isButton = true -}} {{- $href = substr $href (len "javascript:") -}} {{- if not $type -}} {{- $type = "button" -}} {{- end -}} {{- else if and (eq (len $target) 0) (or (strings.HasPrefix $href "http://") (strings.HasPrefix $href "https://") ) -}} {{- $target = "_blank" -}} {{- if isset $context.Site.Params "externallinktarget" -}} {{- $target = $context.Site.Params.externalLinkTarget -}} {{- end -}} {{- end }} {{- $title := .title | default ($content) | 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 " " -}} {{- $iconposition := .iconposition | default "left" -}} {{- with $context -}} <span class="btn {{ $style }}"{{ if $color }} style="--VARIABLE-BOX-color: {{ $color }};"{{ end }}> {{ if $isButton -}} <button{{ if $href }} onclick="{{ $href | safeJS }}"{{ end }}{{ if gt (len $type) 0 }} type="{{ $type }}"{{ end }}> {{ else -}} <a{{ if $href }} href="{{ $href }}"{{ if gt (len $target) 0 }} target="{{ $target }}"{{ end }}{{ end }}> {{- end -}} {{ if and $icon (eq $iconposition "left") -}} <span class="icon">{{- $icon -}}</span> {{- end -}} {{- $title | safeHTML -}} {{ if and $icon (eq $iconposition "right") -}} <span class="icon">{{- $icon -}}</span> {{- end -}} {{ if $isButton -}} </button> {{ else -}} </a> {{ end -}} </span> {{- end -}} {{/* https://github.com/McShelby/hugo-theme-relearn/blob/main/layouts/shortcodes/button.html */}}