2023-07-27 14:14:55 +00:00
|
|
|
{{- $page := .page }}
|
|
|
|
{{- if and (not $page) .context }}
|
|
|
|
{{- $page = .context }}
|
2023-11-20 23:53:33 +00:00
|
|
|
{{- warnf "%q: DEPRECATED parameter 'context' for shortcode 'button' found, use 'page' instead; see https://mcshelby.github.io/hugo-theme-relearn/basics/migration#5180" $page.File.Filename }}
|
2023-07-27 14:14:55 +00:00
|
|
|
{{- end }}
|
2023-01-23 21:35:43 +00:00
|
|
|
{{- $color := .color | default "" }}
|
2022-06-22 18:32:18 +00:00
|
|
|
{{- $content := .content }}
|
2022-11-28 17:42:51 +00:00
|
|
|
{{- $href := (trim .href " ") | default "" }}
|
2023-01-23 21:35:43 +00:00
|
|
|
{{- $style := .style | default "default" }}
|
|
|
|
{{- if and (not $color) (eq (len $color) 0) }}
|
|
|
|
{{- $style = .style | default "transparent" }}
|
|
|
|
{{- end }}
|
2022-10-31 20:08:49 +00:00
|
|
|
{{- $target := .target | default "" }}
|
2022-11-28 17:42:51 +00:00
|
|
|
{{- $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://") ) }}
|
2022-10-31 20:08:49 +00:00
|
|
|
{{- $target = "_blank" }}
|
2023-07-27 14:14:55 +00:00
|
|
|
{{- if isset $page.Site.Params "externallinktarget" }}
|
|
|
|
{{- $target = $page.Site.Params.externalLinkTarget }}
|
2022-12-23 11:24:04 +00:00
|
|
|
{{- end }}
|
2022-10-31 20:08:49 +00:00
|
|
|
{{- end }}
|
2023-10-02 23:28:24 +00:00
|
|
|
{{- $title := .title | default ($content) }}
|
|
|
|
{{- if not $title }}
|
|
|
|
{{- if eq $style "info" }}{{ $title = $style | T }}{{ end }}
|
|
|
|
{{- if eq $style "warning" }}{{ $title = $style | T }}{{ end }}
|
|
|
|
{{- if eq $style "note" }}{{ $title = $style | T }}{{ end }}
|
|
|
|
{{- if eq $style "tip" }}{{ $title = $style | T }}{{ end }}
|
|
|
|
{{- end }}
|
2022-12-01 00:37:09 +00:00
|
|
|
{{- $title = trim $title " " }}
|
2022-06-22 18:32:18 +00:00
|
|
|
{{- $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 }}
|
|
|
|
{{- $iconposition := .iconposition | default "left" }}
|
2023-11-29 09:33:48 +00:00
|
|
|
{{- with $page -}}
|
2023-01-23 21:35:43 +00:00
|
|
|
<span class="btn cstyle {{ $style }}"{{ if $color }} style="--VARIABLE-BOX-color: {{ $color }};"{{ end }}>
|
2023-11-29 09:33:48 +00:00
|
|
|
{{- if $isButton -}}
|
2022-11-28 17:42:51 +00:00
|
|
|
<button{{ if $href }} onclick="{{ $href | safeJS }}"{{ end }}{{ if gt (len $type) 0 }} type="{{ $type }}"{{ end }}>
|
2023-11-29 09:04:02 +00:00
|
|
|
{{- else -}}
|
2022-12-23 11:24:04 +00:00
|
|
|
<a{{ if $href }} href="{{ $href }}"{{ if gt (len $target) 0 }} target="{{ $target }}"{{ end }}{{ end }}>
|
2022-11-28 17:42:51 +00:00
|
|
|
{{- end }}
|
2023-11-29 09:04:02 +00:00
|
|
|
{{- if and $icon (eq $iconposition "left") }}<i class="{{ $icon }}"></i>{{ end }}
|
|
|
|
{{- if and $icon (eq $iconposition "left") $title }} {{ end }}
|
|
|
|
{{- $title | safeHTML }}
|
|
|
|
{{- if and $icon (eq $iconposition "right") $title }} {{ end }}
|
|
|
|
{{- if and $icon (eq $iconposition "right") }}<i class="{{ $icon }}"></i>{{ end }}
|
|
|
|
{{- if $isButton -}}
|
2022-11-28 17:42:51 +00:00
|
|
|
</button>
|
2023-11-29 09:04:02 +00:00
|
|
|
{{- else -}}
|
2022-06-22 18:32:18 +00:00
|
|
|
</a>
|
2023-11-29 09:33:48 +00:00
|
|
|
{{- end -}}
|
2022-06-22 18:32:18 +00:00
|
|
|
</span>
|
|
|
|
{{- end }}
|