{{ $is_list := .is_list }}
{{ $ := .content }}
{{ $link := "" }}
{{/* ***** TODO: Deprecate `url_preprint` in favour of `url_pdf` given there's now a dedicated "Preprint" pub. type. ***** */}}
{{ with $.Params.url_preprint }}
{{ $resource := $.Resources.GetMatch . }}
{{ if $resource }}
{{ $link = $resource.RelPermalink }}
{{ else }}
{{ $link = . | relURL }}
{{ end }}
{{ i18n "btn_preprint" }}
{{ end }}
{{ $pdf := "" }}
{{ $resource := $.Resources.GetMatch (printf "%s.pdf" $.File.ContentBaseName) }}
{{ with $resource }}
{{ $pdf = .RelPermalink }}
{{ else }}
{{ if $.Params.url_pdf }}
{{ $pdf = $.Params.url_pdf | relURL }}
{{ end }}
{{ end }}
{{ with $pdf }}
{{ i18n "btn_pdf" }}
{{ end }}
{{ $resource := $.Resources.GetMatch "*.bib" }}
{{ with $resource }}
{{ end }}
{{ with $.Params.url_code }}
{{ $resource := $.Resources.GetMatch . }}
{{ if $resource }}
{{ $link = $resource.RelPermalink }}
{{ else }}
{{ $link = . | relURL }}
{{ end }}
{{ i18n "btn_code" }}
{{ end }}
{{ with $.Params.url_dataset }}
{{ $resource := $.Resources.GetMatch . }}
{{ if $resource }}
{{ $link = $resource.RelPermalink }}
{{ else }}
{{ $link = . | relURL }}
{{ end }}
{{ i18n "btn_dataset" }}
{{ end }}
{{ if $.Params.projects }}
{{ range $.Params.projects }}
{{ with ($.Site.GetPage (printf "project/%s" .)) }}
{{ i18n "btn_project" }}
{{ else }}
{{/* errorf "The `projects` parameter in `content/%s` references a project file, `content/project/%s`, which cannot be found. Please either set `projects = []` or fix the reference." $.File.Path . */}}
{{ end }}
{{ end }}
{{ else }}
{{ with $.Params.url_project }}
{{ i18n "btn_project" }}
{{ end }}
{{ end }}
{{ with $.Params.url_poster }}
{{ $resource := $.Resources.GetMatch . }}
{{ if $resource }}
{{ $link = $resource.RelPermalink }}
{{ else }}
{{ $link = . | relURL }}
{{ end }}
{{ i18n "btn_poster" }}
{{ end }}
{{ if $.Params.slides }}
{{ with ($.Site.GetPage (printf "slides/%s" $.Params.slides)) }}
{{ i18n "btn_slides" }}
{{ end }}
{{ else }}
{{ with $.Params.url_slides }}
{{ $resource := $.Resources.GetMatch . }}
{{ if $resource }}
{{ $link = $resource.RelPermalink }}
{{ else }}
{{ $link = . | relURL }}
{{ end }}
{{ i18n "btn_slides" }}
{{ end }}
{{ end }}
{{ with $.Params.url_video }}
{{ $resource := $.Resources.GetMatch . }}
{{ if $resource }}
{{ $link = $resource.RelPermalink }}
{{ else }}
{{ $link = . | relURL }}
{{ end }}
{{ i18n "btn_video" }}
{{ end }}
{{ with $.Params.url_source }}
{{ $resource := $.Resources.GetMatch . }}
{{ if $resource }}
{{ $link = $resource.RelPermalink }}
{{ else }}
{{ $link = . | relURL }}
{{ end }}
{{ i18n "btn_source" }}
{{ end }}
{{ with $.Params.doi }}
DOI
{{ end }}
{{ range $.Params.links }}
{{ $pack := or .icon_pack "fas" }}
{{ $pack_prefix := $pack }}
{{ if in (slice "fab" "fas" "far" "fal") $pack }}
{{ $pack_prefix = "fa" }}
{{ end }}
{{ $link := .url }}
{{ $scheme := (urls.Parse $link).Scheme }}
{{ $target := "" }}
{{ if not $scheme }}
{{ $resource := $.Resources.GetMatch .url }}
{{ if $resource }}
{{ $link = $resource.RelPermalink }}
{{ else }}
{{ $link = .url | relURL }}
{{ end }}
{{ else if in (slice "http" "https") $scheme }}
{{ $target = "target=\"_blank\" rel=\"noopener\"" }}
{{ end }}
{{ if .icon }}{{end}}
{{ with .name }}{{ . | safeHTML }}{{end}}
{{ end }}