{{/* Hugo Blox: Biography 3 */}} {{/* Documentation: https://hugoblox.com/blocks/ */}} {{/* License: https://github.com/HugoBlox/hugo-blox-builder/blob/main/LICENSE.md */}} {{/* Initialise */}} {{ $page := .wcPage }} {{ $block := .wcBlock }} {{ $author := $block.content.username | default "me" }} {{ $profile := partial "functions/get_author_profile" $author }} {{ $avatar := $profile.avatar }} {{/* Avatar customization parameters */}} {{ $avatar_size := $block.design.avatar.size | default "large" }} {{ $avatar_shape := $block.design.avatar.shape | default "circle" }} {{/* Profile name typography */}} {{ $name_size := $block.design.name.size | default "lg" }} {{ $name_class_map := dict "xs" "text-xl sm:text-2xl lg:text-3xl" "sm" "text-2xl sm:text-3xl lg:text-4xl" "md" "text-3xl sm:text-4xl lg:text-5xl" "lg" "text-4xl sm:text-5xl lg:text-6xl" "xl" "text-5xl sm:text-6xl lg:text-7xl" }} {{ $name_class := index $name_class_map $name_size | default (index $name_class_map "lg") }} {{/* Size mappings optimized for 2025 standards: display_size -> [display_px, generation_px] */}} {{ $size_map := dict "small" (slice "150" "300") "medium" (slice "200" "400") "large" (slice "320" "640") "xl" (slice "400" "800") "xxl" (slice "500" "1000") }} {{ $size_config := index $size_map $avatar_size | default (index $size_map "large") }} {{ $display_size := index $size_config 0 }} {{ $generation_size := index $size_config 1 }} {{/* Shape class mappings */}} {{ $shape_classes := dict "circle" "rounded-full" "square" "rounded-none" "rounded" "rounded-lg" }} {{ $shape_class := index $shape_classes $avatar_shape | default "rounded-full" }}
({{ . }})
{{- end -}} {{ with $profile.role }}{{ . | markdownify | emojify }}
{{ end }} {{ range $profile.affiliations }}{{ with .url }}{{ end }} {{ .name }} {{ if .url }}{{ end }}
{{ end }}{{ $degree }}
{{ if .year }}{{ .year }}
{{ else if .start }}
{{ .start }}
{{ if .end }}
{{ .end }}{{ end }}
{{ .institution }}