36 lines
1.6 KiB
HTML
36 lines
1.6 KiB
HTML
{{ $url := .Destination }}
|
|
{{ $isExternal := strings.HasPrefix $url "http" }}
|
|
{{ $isBareUrl := eq .Text .Destination }}
|
|
{{ $displayText := .Text }}
|
|
{{ $isVideo := or (strings.HasSuffix $url ".mp4") (strings.HasSuffix $url ".webm") (strings.HasSuffix $url ".ogg") (strings.HasSuffix $url ".mov") }}
|
|
|
|
{{- if $isVideo -}}
|
|
<video class="post-video" controls preload="metadata" playsinline>
|
|
<source src="{{ $url }}">
|
|
</video>
|
|
{{- else if $isExternal -}}
|
|
{{- $domain := urls.Parse $url -}}
|
|
{{- $faviconUrl := printf "https://api.usj.cc/api/favicon?url=%s" $domain.Host -}}
|
|
{{- if $isBareUrl -}}
|
|
<a class="link-card" href="/tiaozhuan.html?target={{ $url | base64Encode }}" target="_blank" rel="noopener">
|
|
<img class="link-card-icon" src="{{ $faviconUrl }}" alt="" loading="lazy" onerror="this.src='/image/avatar/tx7.jpg';this.onerror=null;">
|
|
<span class="link-card-body">
|
|
<span class="link-card-title">{{ $domain.Host }}</span>
|
|
<span class="link-card-url">{{ $url }}</span>
|
|
</span>
|
|
<span class="link-card-arrow">↗</span>
|
|
</a>
|
|
{{- else -}}
|
|
<a class="link-card" href="/tiaozhuan.html?target={{ $url | base64Encode }}" target="_blank" rel="noopener">
|
|
<img class="link-card-icon" src="{{ $faviconUrl }}" alt="" loading="lazy" onerror="this.src='/image/avatar/tx7.jpg';this.onerror=null;">
|
|
<span class="link-card-body">
|
|
<span class="link-card-title">{{ $displayText }}</span>
|
|
<span class="link-card-url">{{ $domain.Host }}</span>
|
|
</span>
|
|
<span class="link-card-arrow">↗</span>
|
|
</a>
|
|
{{- end -}}
|
|
{{- else -}}
|
|
<a href="{{ $url }}">{{ $displayText | safeHTML }}</a>
|
|
{{- end -}}
|