{{ $is_list := .is_list }}
{{ $page := .page }}
{{ $link := "" }}
{{/* ***** TODO: Deprecate `url_preprint` in favour of `url_pdf` given there's now a dedicated "Preprint" pub. type. ***** */}}
{{ with $page.Params.url_preprint }}
  {{ $resource := $page.Resources.GetMatch . }}
  {{ if $resource }}
    {{ $link = $resource.RelPermalink }}
  {{ else }}
    {{ $link = . | relURL }}
  {{ end }}
{{ end }}
{{ $pdf := "" }}
{{ $resource := $page.Resources.GetMatch (printf "%s.pdf" $page.File.ContentBaseName) }}
{{ with $resource }}
  {{ $pdf = .RelPermalink }}
{{ else }}
  {{ if $page.Params.url_pdf }}
    {{ $pdf = $page.Params.url_pdf | relURL }}
  {{ end }}
{{ end }}
{{ with $pdf }}
{{ end }}
{{ $resource := $page.Resources.GetMatch "cite.bib" }}
{{ with $resource }}
{{ end }}
{{ with $page.Params.url_code }}
  {{ $resource := $page.Resources.GetMatch . }}
  {{ if $resource }}
    {{ $link = $resource.RelPermalink }}
  {{ else }}
    {{ $link = . | relURL }}
  {{ end }}
{{ end }}
{{ with $page.Params.url_dataset }}
  {{ $resource := $page.Resources.GetMatch . }}
  {{ if $resource }}
    {{ $link = $resource.RelPermalink }}
  {{ else }}
    {{ $link = . | relURL }}
  {{ end }}
{{ end }}
{{ if $page.Params.projects }}
{{ range $page.Params.projects }}
  {{ with (site.GetPage (printf "project/%s" .)) }}
  
  {{ 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." $page.File.Path . */}}
  {{ end }}
{{ end }}
{{ else }}
{{ with $page.Params.url_project }}
{{ end }}
{{ end }}
{{ with $page.Params.url_poster }}
  {{ $resource := $page.Resources.GetMatch . }}
  {{ if $resource }}
    {{ $link = $resource.RelPermalink }}
  {{ else }}
    {{ $link = . | relURL }}
  {{ end }}
{{ end }}
{{ if $page.Params.slides }}
  {{ with (site.GetPage (printf "slides/%s" $page.Params.slides)) }}
  
  {{ end }}
{{ else }}
{{ with $page.Params.url_slides }}
  {{ $resource := $page.Resources.GetMatch . }}
  {{ if $resource }}
    {{ $link = $resource.RelPermalink }}
  {{ else }}
    {{ $link = . | relURL }}
  {{ end }}
{{ end }}
{{ end }}
{{ with $page.Params.url_video }}
  {{ $resource := $page.Resources.GetMatch . }}
  {{ if $resource }}
    {{ $link = $resource.RelPermalink }}
  {{ else }}
    {{ $link = . | relURL }}
  {{ end }}
{{ end }}
{{ with $page.Params.url_source }}
  {{ $resource := $page.Resources.GetMatch . }}
  {{ if $resource }}
    {{ $link = $resource.RelPermalink }}
  {{ else }}
    {{ $link = . | relURL }}
  {{ end }}
{{ end }}
{{ with $page.Params.doi }}
{{ end }}
{{ range $page.Params.links }}
  {{ $pack := or .icon_pack "fas" }}
  {{ $pack_prefix := $pack }}
  {{ if in (slice "fab" "fas" "far" "fal") $pack }}
    {{ $pack_prefix = "fa" }}
  {{ end }}
  {{ $link := .url | default "" }}
  {{ $scheme := (urls.Parse $link).Scheme }}
  {{ $target := "" }}
  {{ if not $scheme }}
    {{ $resource := $page.Resources.GetMatch $link }}
    {{ if $resource }}
      {{ $link = $resource.RelPermalink }}
    {{ else }}
      {{ $link = $link | relURL }}
    {{ end }}
  {{ else if in (slice "http" "https") $scheme }}
    {{ $target = "target=\"_blank\" rel=\"noopener\"" }}
  {{ end }}
  
{{ end }}