mirror of
https://github.com/McShelby/hugo-theme-relearn.git
synced 2025-02-13 15:23:30 +00:00
72 lines
No EOL
2.6 KiB
Go Template
72 lines
No EOL
2.6 KiB
Go Template
{{- $attributes := .attributes | default dict }}
|
|
{{- /* target will be boolean false if no user defined value was set and effect default should be applied */}}
|
|
{{- $target := false }}
|
|
{{- $u := urls.Parse .url }}
|
|
{{- if $u.IsAbs }}
|
|
{{- $attributes = merge $attributes (dict "rel" "external") }}
|
|
{{- $target = "_blank" }}
|
|
{{- if isset .page.Site.Params "externallinktarget" }}
|
|
{{- $target = .page.Site.Params.externalLinkTarget }}
|
|
{{- if in (slice "false" false 0) $target }}
|
|
{{- $target = "" }}
|
|
{{- end }}
|
|
{{- if in (slice "true" true 1) $target }}
|
|
{{- $target = "_blank" }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- $effects := dict "download" false "target" false }}
|
|
{{- if .page.Site.Params.linkeffects }}
|
|
{{- $effects = merge $effects .page.Site.Params.linkeffects }}
|
|
{{- end }}
|
|
{{- if .page.Params.linkeffects }}
|
|
{{- $effects = merge $effects .page.Params.linkeffects }}
|
|
{{- end }}
|
|
{{- $target := .target | default $target }}
|
|
{{- if ne (printf "%T" $target) "bool" }}
|
|
{{- $effects = merge $effects (dict "target" $target) }}
|
|
{{- end }}
|
|
{{- if $u.RawQuery }}
|
|
{{- if $u.Query.Has "classes" }}
|
|
{{- $classes := slice | append (split ($u.Query.Get "classes") ",") }}
|
|
{{- range $classes }}
|
|
{{- $k := . }}
|
|
{{- $v := true }}
|
|
{{- if strings.HasPrefix $k "no" }}
|
|
{{- $k := strings.TrimPrefix "no" $k }}
|
|
{{- $v := false }}
|
|
{{- end }}
|
|
{{- $effects = merge $effects (dict $k $v) }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- range $k, $v := $effects }}
|
|
{{- if $u.Query.Has $k }}
|
|
{{- $paramValue := $u.Query.Get $k }}
|
|
{{- $newValue := true }}
|
|
{{- if eq $paramValue "" }}
|
|
{{- $newValue = true }}
|
|
{{- else if eq $paramValue "true" }}
|
|
{{- $newValue = true }}
|
|
{{- else if eq $paramValue "false" }}
|
|
{{- $newValue = false }}
|
|
{{- else }}
|
|
{{- $newValue = $paramValue }}
|
|
{{- end }}
|
|
{{- $effects = merge $effects (dict $k $newValue) }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- $classes := slice }}
|
|
{{- range $k, $v := $effects }}
|
|
{{- if $v }}
|
|
{{- if eq (printf "%T" $v) "bool" }}
|
|
{{- $classes = $classes | append $k }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if $attributes.class }}{{ $classes = $classes | append (split $attributes.class " ") }}{{ end }}
|
|
{{- $attributes = merge $attributes (dict "class" (delimit $classes " ")) }}
|
|
{{- $attributes = merge $attributes (dict "href" .url) }}
|
|
{{- $attributes = merge $attributes (dict "download" $effects.download) }}
|
|
{{- $attributes = merge $attributes (dict "target" $effects.target) }}
|
|
{{- return $attributes }} |