{{- $text_link := .Text -}}

{{ $_ := newScratch }}
{{- range $k, $v := .Page.Site.Data.sandpointsnamegraph -}}
  {{ $_.Add "triads" $k }}
{{- end -}}

{{- if strings.HasPrefix .Destination "bib:" -}}
  {{- $destination := (substr .Destination 4) -}}
  {{- $c_prefix := .Page.Site.Params.sandpointsCatalogPrefix | default "/library/" -}}
  {{- if index $.Page.Site.Data.books.catalog $destination -}}
    {{- $b := index $.Page.Site.Data.books.catalog $destination -}}
    {{- $bibhref := printf "%sBROWSE_LIBRARY.html#/book/%s" (safeURL ($c_prefix)) $destination }}
    {{ $bibtitle := "" }}
    {{ with $b.title }}
      {{- $bibtitle = printf "%s" $b.title }}
    {{ end }}
    {{ .Page.Scratch.Add "bibs" (slice (slice $bibhref $bibtitle)) }}
    {{- if not $text_link -}}
      <span>{{- delimit $b.authors ", " " & " -}}{{- with $b.pubdate -}}, {{- substr . 0 4}}{{- end -}}.<a href="{{- $c_prefix | safeURL -}}BROWSE_LIBRARY.html#/book/{{- $destination -}}"{{- with $b.title}} title="{{- . -}}"{{- end -}} target="_blank"><span class="sup">bib⁄</span><i>‘{{- $b.title -}}’</i></a>. {{- with $b.publisher -}}{{- . -}}.{{- end -}}</span>
      {{- else -}}
      <span class="sup">bib⁄</span><a href="{{- $c_prefix | safeURL -}}BROWSE_LIBRARY.html#/book/{{- $destination -}}"{{- with $b.title}} title="{{- . -}}"{{- end -}} target="_blank">{{- $text_link -}}</a>
    {{- end -}}
  {{- else -}}
    <a href="{{- $c_prefix | safeURL -}}BROWSE_LIBRARY.html#/book/{{- $destination -}}"{{- with .Title}} title="{{- . -}}"{{- end -}}>{{- $text_link -}}⦚<span>bib:{{- $destination -}} not found</span></a>
  {{- end -}}
{{- else if in ($_.Get "triads") (index (split .Destination ":") 0)  -}}
  {{- if $.Page.Site.GetPage (printf "/%s" (replace .Destination ":" "/")) -}}
    {{- $session := $.Page.Site.GetPage (printf "/%s" (replace .Destination ":" "/"))  -}}
    {{ .Page.Scratch.Add "links" (slice $session) }}
    {{- if not $text_link -}}
      <a class="triadlink" repoid="{{- $session.File.UniqueID -}}" printhref="#ph-{{- $session.File.UniqueID -}}" href="{{- $session.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with $session.Title}} title="{{- $session.Title -}}"{{- end -}}><span class="sup">{{- index (split .Destination ":") 0 -}}⁄</span>{{- $session.Title -}}</a>
    {{- else -}}
      <a class="triadlink" repoid="{{- $session.File.UniqueID -}}" printhref="#ph-{{- $session.File.UniqueID -}}" href="{{- $session.RelPermalink -}}{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}"{{- with .Title}} title="{{- . -}}"{{- end -}}><span class="sup">{{- index (split .Destination ":") 0 -}}⁄</span>{{- $text_link -}}</a>
    {{- end -}}
  {{- else -}}
    <a href="{{- .Destination -}}/{{- if eq hugo.Environment "offline" -}}index.html{{- end -}}">{{- $text_link -}}⦚<span>{{- .Destination -}} not found</span></a>
  {{- end -}}
{{- else if strings.HasPrefix .Destination "audio:" -}}
  {{- $a_destination := (substr .Destination 6) -}}
  {{- if findRE "^.*static" $a_destination -}}
    <span class="soundcite" data-url="{{- (replaceRE "^.*static" "" $a_destination ) | safeURL -}}">{{ .Text }}</span>
  {{- else -}}
    <span class="soundcite" data-url="{{- $a_destination  | safeURL -}}">{{ .Text }}</span>
  {{- end -}}
{{- else if findRE "^.*static" .Destination -}}
  <img src="{{- (replaceRE "^.*static" "" .Destination ) | safeURL -}}" alt="{{- .Text -}}" {{- with .Title}} title="{{- . -}}"{{- end -}} />
{{- else -}}
  <img src="{{- .Destination | safeURL -}}" alt="{{- .Text -}}" {{- with .Title}} title="{{- . -}}"{{- end -}} />
{{- end -}}
