Files
blog/themes/Ying/layouts/_default/_markup/render-link.html
T

35 lines
1.5 KiB
HTML
Raw Normal View History

2024-08-03 16:55:54 +08:00
{{ $url := .Destination }}
2026-06-02 12:44:47 +08:00
{{ $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.style.display='none'">
<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.style.display='none'">
<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 -}}