{{/* Hugo Blox: Team Showcase */}} {{/* Documentation: https://hugoblox.com/blocks/ */}} {{/* License: https://github.com/HugoBlox/kit/blob/main/LICENSE.md */}} {{/* Initialise */}} {{ $page := .wcPage }} {{ $block := .wcBlock }} {{ $content := $block.content }} {{ if not (reflect.IsMap $content) }}{{ $content = dict }}{{ end }} {{ $design := $block.design }} {{ if not (reflect.IsMap $design) }}{{ $design = dict }}{{ end }} {{ $show_social := partial "functions/coerce_bool" (dict "value" (index $design "show_social") "default" true) }} {{ $show_interests := partial "functions/coerce_bool" (dict "value" (index $design "show_interests") "default" false) }} {{ $show_role := partial "functions/coerce_bool" (dict "value" (index $design "show_role") "default" true) }} {{ $show_organizations := partial "functions/coerce_bool" (dict "value" (index $design "show_organizations") "default" true) }} {{ $show_empty_groups := partial "functions/coerce_bool" (dict "value" (index $design "show_empty_groups") "default" false) }} {{ $max_interests_int := partial "functions/coerce_int" (dict "value" (index $design "max_interests") "default" 3 "min" 0) }} {{ $max_columns_int := partial "functions/coerce_int" (dict "value" (index $design "max_columns") "default" 4 "min" 2 "max" 4) }} {{ $align := "center" }} {{ $align_raw := index $design "align" }} {{ if eq (printf "%T" $align_raw) "string" }} {{ $align_candidate := lower (strings.TrimSpace $align_raw) }} {{ if in (slice "center" "left") $align_candidate }} {{ $align = $align_candidate }} {{ end }} {{ end }} {{ $sort_field := "name_family" }} {{ $sort_field_raw := index $content "sort_by" }} {{ if eq (printf "%T" $sort_field_raw) "string" }} {{ $sort_field_raw = strings.TrimSpace $sort_field_raw }} {{ if ne $sort_field_raw "" }} {{ $sort_field = $sort_field_raw }} {{ end }} {{ end }} {{ $sort_asc := partial "functions/coerce_bool" (dict "value" (index $content "sort_ascending") "default" true) }} {{ $sort_field_lc := lower $sort_field }} {{ if hasPrefix $sort_field_lc "params." }} {{/* Backwards compatibility with Params.* used when authors were pages */}} {{ $sort_field = substr $sort_field 7 }} {{ $sort_field_lc = lower $sort_field }} {{ end }} {{ $title := "" }} {{ with index $content "title" }}{{ $title = printf "%v" . | emojify | $page.RenderString }}{{ end }} {{ $subtitle := "" }} {{ with index $content "subtitle" }}{{ $subtitle = printf "%v" . | emojify | $page.RenderString }}{{ end }} {{ $text := "" }} {{ with index $content "text" }}{{ $text = printf "%v" . | emojify | $page.RenderString }}{{ end }} {{ $headerContainerClass := cond (eq $align "left") "max-w-3xl mb-12 text-left" "text-center max-w-3xl mx-auto mb-12" }} {{ $ctaAlignClass := cond (eq $align "left") "text-left" "text-center" }} {{ $columnsClasses := dict "2" "grid grid-cols-1 gap-8 sm:grid-cols-2" "3" "grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3" "4" "grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4" }} {{ $max_columns_key := printf "%d" $max_columns_int }} {{ $gridClass := index $columnsClasses $max_columns_key | default "grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4" }}
{{ . }}
{{ end }} {{ with $text }}{{ . }}
{{ end }} {{ if and $show_organizations $first_affiliation }}{{ $first_affiliation }}
{{ end }}{{ . }}
{{ end }} {{ $interests_raw := $profile.interests }} {{ $interests := slice }} {{ if reflect.IsSlice $interests_raw }} {{ $interests = $interests_raw }} {{ else if eq (printf "%T" $interests_raw) "string" }} {{ $interests = slice $interests_raw }} {{ end }} {{ if and $show_interests (gt (len $interests) 0) }}{{ . }}
{{ end }} {{ if and $show_organizations $first_affiliation }}{{ $first_affiliation }}
{{ end }}{{ . }}
{{ end }} {{ $interests_raw := $profile.interests }} {{ $interests := slice }} {{ if reflect.IsSlice $interests_raw }} {{ $interests = $interests_raw }} {{ else if eq (printf "%T" $interests_raw) "string" }} {{ $interests = slice $interests_raw }} {{ end }} {{ if and $show_interests (gt (len $interests) 0) }}