{{ partial "components/breadcrumb.html" . }}
{{ end }}
{{/* Add spacing if cover has overlapping icon */}}
{{ $cover := partial "functions/get_cover_image.html" . }}
{{ $has_overlap_icon := false }}
{{ if $cover }}
{{ $icon_config := .Params.cover.icon | default (dict) }}
{{ if or $icon_config.name $icon_config.emoji }}
{{ $icon_position := $icon_config.position | default "overlap" }}
{{ if eq $icon_position "overlap" }}
{{ $has_overlap_icon = true }}
{{ end }}
{{ end }}
{{ end }}
{{/* Inline icon before title if specified */}} {{ if $cover }} {{ $icon_config := .Params.cover.icon | default (dict) }} {{ if or $icon_config.name $icon_config.emoji }} {{ $icon_position := $icon_config.position | default "overlap" }} {{ if eq $icon_position "inline" }} {{ if $icon_config.emoji }} {{ $icon_config.emoji }} {{ else if $icon_config.name }} {{ partial "components/icon.html" (dict "name" $icon_config.name "attributes" "class=\"w-full h-full\"") }} {{ end }} {{- .Title -}} {{ else }} {{- .Title -}} {{ end }} {{ else }} {{- .Title -}} {{ end }} {{ else }} {{- .Title -}} {{ end }}
{{ $display_date := .Params.event_start | default .Date }}
{{- if $display_date | and (not .Params.hide_date) -}}
{{- (time $display_date) | time.Format (site.Params.hugoblox.locale.date_format | default ":date_long") -}}
{{- if .Params.authors }}·{{ end -}}
{{- end -}}
{{/* Set Alpine.js flag if author notes exist */}}
{{ if isset .Params "author_notes" }}
{{ .Store.Set "has_alpine" true }}
{{ end }}
{{ range $i, $slug := .Params.authors }}
{{ $profile := partial "functions/get_author_profile" $slug }}
{{ $avatar := $profile.avatar }}
{{ if and $i (not $avatar) }},{{ end }}
{{ with $avatar }}
{{ $avatar_32 := .Process "Fill 32x32 Center webp" }}
{{ end }}
{{/* Add author note tooltip if available */}}
{{- if isset $.Params "author_notes" -}}
{{- with (index $.Params.author_notes $i) -}}
{{ $profile.title }}
{{.}}
{{- end -}}
{{- end -}}
{{ end }}
{{ if ne .Params.reading_time false }}
·
{{ .ReadingTime }} {{ i18n "minute_read" }}
{{ end }}
{{ partial "page_links_div.html" . }}
{{ if .Params.abstract }}
{{ end }}
{{ end }}
{{ i18n "abstract" }}
{{ .Params.abstract | markdownify }}
{{ end }}
{{/* If the type is Uncategorized, hide the type. */}}
{{ if $pub_type_display }}
{{ i18n "publication_type" }}
{{ if and .Params.publication_types (gt (len .Params.publication_types) 0) }}
{{ $pub_type_display }}
{{ end }}
{{ end }}
{{ if or .Params.publication .Params.publication_short }}
{{ i18n "publication" }}
{{ (.Params.publication | default .Params.publication_short) | markdownify }}
{{ end }}
{{ if eq .Type "events" }}
{{ i18n "date" }}
{{ partial "functions/get_event_dates" . }}
{{ end }}
{{ if .Params.event_name }}
{{ i18n "event" }}
{{ with .Params.event_url }}{{ end }}
{{ .Params.event_name | markdownify }}
{{ if .Params.event_url }}{{ end }}
{{ end }}
{{ if .Params.location }}
{{ i18n "location" }}
{{ .Params.location | markdownify }}
{{ if .Params.address }}{{partial "functions/get_address" (dict "root" . "address" .Params.address) }}
{{end}}
{{ with .Section }}
{{ end }}
{{ with .Params.categories }}
{{ end }}
{{ if eq .Type "publications" }}
{{ $content_plain := strings.TrimSpace (.Content | plainify) }}
{{ $abstract_plain := strings.TrimSpace ((.Params.abstract | default "") | plainify) }}
{{ if and (ne $content_plain "") (ne $content_plain $abstract_plain) }}
{{ .Content }}
{{ end }}
{{ else }}
{{ .Content }}
{{ end }}
{{ partial "components/last-edited.html" . }}
{{ i18n "citation" | default "Citation" }}
{{ partial "functions/publication_apa" (dict "item" .) }}
{{ .Scratch.Set "invert_pager" true }}
{{ partial "page_footer" . }}