summaryrefslogtreecommitdiff
path: root/layouts/_shortcodes
diff options
context:
space:
mode:
authoreltrac <hi@eltr.ac>2026-04-07 14:53:17 +0800
committereltrac <hi@eltr.ac>2026-04-07 14:53:17 +0800
commit10431bd8f5ff71690ae4e5444e8d7894fd401ae5 (patch)
tree62b7fd1b6c1f68d2804f380eb522bcebeb2c8d9f /layouts/_shortcodes
parent3e0edacc4a0cafa53ede57ebb6f0378c93f3123b (diff)
chore: move templates out of site repo
Diffstat (limited to 'layouts/_shortcodes')
-rw-r--r--layouts/_shortcodes/book.html17
-rw-r--r--layouts/_shortcodes/bookcard.html28
-rw-r--r--layouts/_shortcodes/daysfrom.html12
-rw-r--r--layouts/_shortcodes/fedicard.html148
-rw-r--r--layouts/_shortcodes/float-image.html13
-rw-r--r--layouts/_shortcodes/gallery.html3
-rw-r--r--layouts/_shortcodes/link.html15
-rw-r--r--layouts/_shortcodes/linkding-bookmarks.html68
-rw-r--r--layouts/_shortcodes/linkrank.html2
-rw-r--r--layouts/_shortcodes/music.html53
-rw-r--r--layouts/_shortcodes/opml-links.html19
-rw-r--r--layouts/_shortcodes/postcount.html1
-rw-r--r--layouts/_shortcodes/quotecard.html11
-rw-r--r--layouts/_shortcodes/right.html1
-rw-r--r--layouts/_shortcodes/wordcount.html7
15 files changed, 0 insertions, 398 deletions
diff --git a/layouts/_shortcodes/book.html b/layouts/_shortcodes/book.html
deleted file mode 100644
index 7ea49089..00000000
--- a/layouts/_shortcodes/book.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<div class="book-showcase">
- <div class="book-cover">
- <a href="{{ .Get "cover" }}" data-libra>
- <img class="lazy" src="{{ .Get "cover" }}" loading="lazy" />
- </a>
- </div>
- <div class="book-description">
- <div class="book-description-header">
- <h3 class="book-title" id="book-{{ .Get "title" }}">{{ .Get "title" }}</h3>
- <p>分数:{{ .Get "rating" }}</p>
- </div>
- <div>
-
- {{ .Inner | markdownify }}
- </div>
- </div>
-</div>
diff --git a/layouts/_shortcodes/bookcard.html b/layouts/_shortcodes/bookcard.html
deleted file mode 100644
index 48e6924c..00000000
--- a/layouts/_shortcodes/bookcard.html
+++ /dev/null
@@ -1,28 +0,0 @@
-{{- $books := where .Site.Pages "Section" "library" -}}
-{{- $book := index (where $books "File.BaseFileName" (.Get 0)) 0 -}}
-
-{{- if $book }}
- <div class="markdown-body text-size-lg md:text-size-xl">
- <div class="mx-auto max-w-[50%] ">
- <img class="block w-full" src="{{ $book.Params.cover }}" />
- </div>
- <h3 class="book-title">
- <a href="{{ $book.Permalink }}">{{ $book.Title }}</a>
- </h3>
-
- {{- $rating := $book.Params.rating -}}
- {{- $fullStars := math.Floor $rating -}}
- <div class="rating">
- <span>评分:</span>
- {{- range seq $fullStars }}
- <span class="star">★</span>
- {{- end -}}
- </div>
-
- <div class="book-content">
- {{ $book.Content }}
- </div>
- </div>
-{{- else }}
- <p style="color: red;">⚠️ 无法找到书评: {{ .Get 0 }}</p>
-{{- end }}
diff --git a/layouts/_shortcodes/daysfrom.html b/layouts/_shortcodes/daysfrom.html
deleted file mode 100644
index c2750480..00000000
--- a/layouts/_shortcodes/daysfrom.html
+++ /dev/null
@@ -1,12 +0,0 @@
-{{- $date := .Get 0 -}}
-{{- $t := time $date -}}
-{{- $now := now -}}
-{{- $durSeconds := sub $now.Unix $t.Unix | int -}}
-
-{{- $days := div $durSeconds 86400 -}}
-
-{{- if lt $days 0 -}}
- {{ mul $days -1 }}
-{{- else -}}
- {{ $days }}
-{{- end -}}
diff --git a/layouts/_shortcodes/fedicard.html b/layouts/_shortcodes/fedicard.html
deleted file mode 100644
index 1f10ebeb..00000000
--- a/layouts/_shortcodes/fedicard.html
+++ /dev/null
@@ -1,148 +0,0 @@
-{{- $url := .Get 0 -}}
-{{- $parsed := urls.Parse $url -}}
-{{- $parts := split $parsed.Path "/" -}}
-{{- $id := index $parts (sub (len $parts) 1) -}}
-{{- $instance := printf "%s://%s" $parsed.Scheme $parsed.Host -}}
-{{- $apiUrl := printf "%s/api/v1/statuses/%s" $instance $id -}}
-{{- $data := resources.GetRemote $apiUrl -}}
-{{- $json := $data | transform.Unmarshal -}}
-{{- $author := $json.account -}}
-
-{{- $publishedAt := time $json.created_at -}}
-
-{{- $avatarSrc := $author.avatar -}}
-{{- with resources.GetRemote $author.avatar -}}
- {{- with .Resize "88x88 q85 webp" -}}
- {{- $avatarSrc = .RelPermalink -}}
- {{- end -}}
-{{- end -}}
-
-{{- /* Count image attachments */ -}}
-{{- $imgCount := 0 -}}
-{{- range $json.media_attachments -}}{{- if eq .type "image" -}}{{- $imgCount = add $imgCount 1 -}}{{- end -}}{{- end -}}
-{{- $cId := printf "sc-%s" (md5 $url) -}}
-{{- $dId := printf "sd-%s" (md5 $url) -}}
-
-<div class="social-card-final cnt-undo rd bg-[var(--block-background-color)] p-4 md:px-8 md:py-6 relative overflow-hidden" style="background-color: oklch(from var(--block-background-color) l c h / calc(alpha - 0.5))">
- <div style="display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 8px;">
- <div style="display: flex; align-items: center; gap: 12px;">
- <img src="{{ $avatarSrc }}" style="width: 44px; height: 44px; border-radius: 50%; flex-shrink: 0; object-fit: cover;" />
- <div style="display: flex; flex-direction: column; line-height: 1.2;">
- <span style="font-weight: 700; color: var(--color-neso-fg1); font-size: 1rem;">{{ $author.display_name }}</span>
- <span style="color: var(--color-neso-fg3); font-size: 0.9rem;">@{{ $author.acct }}</span>
- </div>
- </div>
- <a href="{{ $url }}" target="_blank" style="color: #6364ff; align-self: flex-start; margin-top: 2px; transition: transform 0.2s ease-in-out; display: flex; flex-shrink: 0;" onmouseover="this.style.transform='scale(1.2)'" onmouseout="this.style.transform='scale(1)'">
-<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 196.52 196.52">
- <path fill="#a730b8" d="M47.9242 72.7966a18.2278 18.2278 0 0 1-7.7959 7.7597l42.7984 42.9653 10.3182-5.2291zm56.4524 56.6704-10.3182 5.2291 21.686 21.7708a18.2278 18.2278 0 0 1 7.7975-7.7608z"/>
- <path fill="#5496be" d="M129.6645 102.0765l1.7865 11.4272 27.4149-13.8942a18.2278 18.2278 0 0 1-4.9719-9.8124zm-14.0658 7.1282-57.2891 29.0339a18.2278 18.2278 0 0 1 4.9728 9.8133l54.1027-27.4194z"/>
- <path fill="#ce3d1a" d="M69.5312 91.6539l8.1618 8.1933 29.269-57.1387a18.2278 18.2278 0 0 1-9.787-5.0219zm-7.1897 14.0363-14.0022 27.3353a18.2278 18.2278 0 0 1 9.786 5.0214l12.3775-24.1639z"/>
- <path fill="#d0188f" d="M39.8906 80.6763a18.2278 18.2278 0 0 1-10.8655 1.7198l8.1762 52.2981a18.2278 18.2278 0 0 1 10.8645-1.7198z"/>
- <path fill="#5b36e9" d="M63.3259 148.3109a18.2278 18.2278 0 0 1-1.7322 10.8629l52.2893 8.3907a18.2278 18.2278 0 0 1 1.7322-10.8629z"/>
- <path fill="#30b873" d="M134.9148 146.9182a18.2278 18.2278 0 0 1 9.788 5.0224l24.1345-47.117a18.2278 18.2278 0 0 1-9.7875-5.0229z"/>
- <path fill="#ebe305" d="M126.1329 33.1603a18.2278 18.2278 0 0 1-7.7975 7.7608l37.3765 37.5207a18.2278 18.2278 0 0 1 7.7969-7.7608z"/>
- <path fill="#f47601" d="M44.7704 51.6279a18.2278 18.2278 0 0 1 4.9723 9.8123l47.2478-23.9453a18.2278 18.2278 0 0 1-4.9718-9.8113z"/>
- <path fill="#57c115" d="M118.2491 40.9645a18.2278 18.2278 0 0 1-10.8511 1.8123l4.1853 26.8 11.42 1.8324zm-4.2333 44.1927 9.8955 63.3631a18.2278 18.2278 0 0 1 10.88-1.6278l-9.355-59.9035z"/>
- <path fill="#dbb210" d="M49.7763 61.6412a18.2278 18.2278 0 0 1-1.694 10.8686l26.8206 4.3077 5.2715-10.2945zm45.9677 7.382-5.272 10.2955 63.3713 10.1777a18.2278 18.2278 0 0 1 1.7606-10.8593z"/>
- <path fill="#ffca00" d="M93.4385 23.8419a1 1 0 1 0 33.0924 1.8025 1 1 0 1 0-33.0924-1.8025"/>
- <path fill="#64ff00" d="M155.314 85.957a1 1 0 1 0 33.0923 1.8025 1 1 0 1 0-33.0923-1.8025"/>
- <path fill="#00a3ff" d="M115.3466 163.9824a1 1 0 1 0 33.0923 1.8025 1 1 0 1 0-33.0923-1.8025"/>
- <path fill="#9500ff" d="M28.7698 150.0898a1 1 0 1 0 33.0923 1.8025 1 1 0 1 0-33.0923-1.8025"/>
- <path fill="#ff0000" d="M15.2298 63.4781a1 1 0 1 0 33.0923 1.8025 1 1 0 1 0-33.0923-1.8025"/>
-</svg>
- </a>
- </div>
-
- {{- $bodyText := $json.content -}}
- {{- $bodyText = $bodyText | replaceRE `(<p>[\s]*(<a [^>]*class="mention hashtag"[^>]*>#<span>[^<]+</span></a>[\s]*)+</p>[\s]*)+$` "" -}}
- {{- $bodyText = $bodyText | replaceRE `<span class="invisible">[^<]*</span>` "" -}}
- {{- $bodyText = $bodyText | replaceRE `<a ` `<a style="text-decoration:none;" ` -}}
- {{- $bodyText = $bodyText | replaceRE `<p>` `<p style="margin:0 0 0.9em 0;">` -}}
- {{- $bodyText = $bodyText | replaceRE `<p [^>]+>[\s]*</p>` "" -}}
-
- <div style="font-size: 1.05rem; line-height: 1.6; margin-bottom: 12px; color: var(--color-neso-fg1);">
- {{ $bodyText | safeHTML }}
- </div>
-
- {{- if gt $imgCount 0 -}}
- {{- if le $imgCount 2 -}}
- {{- /* 1–2 images: flex row (2 images split 50/50, cropped) */ -}}
- <div style="display: flex; gap: 8px; margin-top: 8px; margin-bottom: 12px; overflow: hidden;">
- {{- range $json.media_attachments -}}
- {{- if eq .type "image" -}}
- {{- $imgSrc := .preview_url -}}
- {{- with resources.GetRemote .preview_url -}}
- {{- with .Process "q85 webp" -}}
- {{- $imgSrc = .RelPermalink -}}
- {{- end -}}
- {{- end -}}
- <img src="{{ $imgSrc }}" alt="{{ .description }}" onclick="window.__scLb&&window.__scLb(this.src)" style="flex: 1 1 0%; min-width: 0; border-radius: 8px; display: block; margin: 0 !important; cursor: pointer;{{ if gt $imgCount 1 }} height: 250px; object-fit: cover;{{ else }} height: auto; width: 100%;{{ end }}" loading="lazy">
- {{- end -}}
- {{- end -}}
- </div>
- {{- else -}}
- {{- /* 3+ images: scroll-snap carousel */ -}}
- <style>#{{ $cId }}::-webkit-scrollbar{display:none}</style>
- <div style="margin: 8px 0 4px; overflow: hidden;">
- <div id="{{ $cId }}" style="display: flex; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; border-radius: 8px;">
- {{- range $json.media_attachments -}}
- {{- if eq .type "image" -}}
- {{- $imgSrc := .preview_url -}}
- {{- with resources.GetRemote .preview_url -}}
- {{- with .Process "q85 webp" -}}
- {{- $imgSrc = .RelPermalink -}}
- {{- end -}}
- {{- end -}}
- <img src="{{ $imgSrc }}" alt="{{ .description }}" onclick="window.__scLb&&window.__scLb(this.src)" style="scroll-snap-align: start; flex-shrink: 0; width: 100%; height: 280px; object-fit: cover; border-radius: 8px; cursor: pointer; display: block; margin: 0 !important;" loading="lazy">
- {{- end -}}
- {{- end -}}
- </div>
- {{- $imgAttachments := slice -}}
- {{- range $json.media_attachments -}}{{- if eq .type "image" -}}{{- $imgAttachments = $imgAttachments | append . -}}{{- end -}}{{- end -}}
- <div id="{{ $dId }}" style="display: flex; justify-content: center; gap: 6px; margin-top: 8px; margin-bottom: 12px;">
- {{- range $i, $_ := $imgAttachments -}}
- <button onclick="(function(){var c=document.getElementById('{{ $cId }}');c.scrollTo({left:c.children[{{ $i }}].offsetLeft,behavior:'smooth'});})()" aria-label="Image {{ add $i 1 }}" style="width: 8px; height: 8px; border-radius: 50%; border: none; background: {{ if eq $i 0 }}var(--color-neso-fg2){{ else }}var(--color-neso-deco2){{ end }}; cursor: pointer; padding: 0; transition: background 0.2s;"></button>
- {{- end -}}
- </div>
- </div>
- <script>(function(){var c=document.getElementById('{{ $cId }}'),ds=document.getElementById('{{ $dId }}').querySelectorAll('button');c.addEventListener('scroll',function(){var i=Math.round(c.scrollLeft/c.offsetWidth);ds.forEach(function(d,j){d.style.background=j===i?'var(--color-neso-fg2)':'var(--color-neso-deco2)';});},{passive:true});})()</script>
- {{- end -}}
- {{- end -}}
-
- {{- /* Link preview card — use original image URL, skip processing (CDN images can return 403) */ -}}
- {{- with $json.card -}}
- {{- if or (eq .type "link") (eq .type "photo") (eq .type "video") -}}
- <a href="{{ .url }}" target="_blank" rel="noopener noreferrer" style="display: block; margin-top: 8px; margin-bottom: 16px; border: 1px solid var(--color-neso-deco2); border-radius: 10px; overflow: hidden; text-decoration: none; color: inherit;">
- {{- if .image -}}
- <img src="{{ .image }}" alt="{{ .title }}" style="width: 100%; height: 180px; object-fit: cover; display: block; margin: 0 !important;">
- {{- end -}}
- <div style="padding: 10px 14px;">
- <div style="font-weight: 600; font-size: 0.95rem; color: var(--color-neso-fg1); margin-bottom: 3px;">{{ .title }}</div>
- {{- if .description -}}<div style="font-size: 0.85rem; color: var(--color-neso-fg3); margin-bottom: 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;">{{ .description }}</div>{{- end -}}
- <div style="font-size: 0.8rem; color: var(--color-neso-fg3);">{{ (urls.Parse .url).Host }}</div>
- </div>
- </a>
- {{- end -}}
- {{- end -}}
-
- <div style="border-top: 1px solid var(--color-neso-deco3); padding-top: 12px; margin-top: 16px; display: flex; justify-content: space-between; align-items: center;">
- <time class="social-card-time" datetime="{{ $publishedAt.Format "2006-01-02T15:04:05Z" }}" style="color: var(--color-neso-fg3); font-size: 0.9rem;">{{ $publishedAt.Format "Jan 2, 2006 at 3:04 PM UTC" }}</time>
- <a href="{{ $url }}" target="_blank" style="color: #6364ff; font-weight: 600; text-decoration: none; font-size: 0.9rem; transition: color 0.2s ease-in-out;" onmouseover="this.style.color='#8A8BFF'" onmouseout="this.style.color='#6364ff'">{{ T "ViewOnFediverse" . }}</a>
- </div>
-</div>
-
-{{- /* Shared lightbox — injected once per page via DOM API (no innerHTML) */ -}}
-<script>
-if (!window.__scLb) {
- var _lbImg = document.createElement('img');
- _lbImg.style.cssText = 'max-width:92vw;max-height:92vh;object-fit:contain;border-radius:8px;cursor:default;';
- _lbImg.addEventListener('click', function(e) { e.stopPropagation(); });
- var _lbOv = document.createElement('div');
- _lbOv.style.cssText = 'display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,0.88);cursor:zoom-out;align-items:center;justify-content:center;';
- _lbOv.appendChild(_lbImg);
- _lbOv.addEventListener('click', function() { _lbOv.style.display = 'none'; document.body.style.overflow = ''; });
- document.addEventListener('keydown', function(e) { if (e.key === 'Escape') { _lbOv.style.display = 'none'; document.body.style.overflow = ''; } });
- document.body.appendChild(_lbOv);
- window.__scLb = function(src) { _lbImg.src = src; _lbOv.style.display = 'flex'; document.body.style.overflow = 'hidden'; };
-}
-</script>
diff --git a/layouts/_shortcodes/float-image.html b/layouts/_shortcodes/float-image.html
deleted file mode 100644
index 2c03992d..00000000
--- a/layouts/_shortcodes/float-image.html
+++ /dev/null
@@ -1,13 +0,0 @@
-{{ $src := .Get 0 }}
-
-{{ $float := .Get 1 }}
-{{ $padding := "" }}
-{{ if eq $float "left" }}
- {{ $padding = "pr-4 sm:pr-6 md:pr-8" }}
-{{ else }}
- {{ $padding = "pl-4 sm:pl-6 md:pr-8" }}
-{{ end }}
-
-<figure style="float: {{ $float }}" class="{{ $padding }} w-25 sm:w-30 md:w-50">
- <img src="{{ $src }}" data-libra class="my-0" />
-</figure>
diff --git a/layouts/_shortcodes/gallery.html b/layouts/_shortcodes/gallery.html
deleted file mode 100644
index da8e4ab5..00000000
--- a/layouts/_shortcodes/gallery.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<div class="gallery{{ with .Get "class" }} {{ . }}{{ end }}">
- {{ .Page.RenderString .Inner }}
-</div>
diff --git a/layouts/_shortcodes/link.html b/layouts/_shortcodes/link.html
deleted file mode 100644
index 9f7ea3e5..00000000
--- a/layouts/_shortcodes/link.html
+++ /dev/null
@@ -1,15 +0,0 @@
-{{ if eq (.Get "type") "podcast" }}
-<a href="{{ .Get "link" }}" target="_blank" title="{{ .Get "title" }}"
- class="block w-[calc(25%_-_1rem)] rounded-md overflow-hidden box-border p-0"
- style="background-color: var(--block-background-color);
- color: var(--text-color);text-decoration: none;">
- <img src="{{ .Get "image" }}" class="block m-0!" alt="{{ .Get "title" }}">
-</a>
-{{ else }}
-<a href="{{ .Get "link" }}" target="_blank"
- class="block w-[calc(50%_-_1rem)] rounded-4 box-border px-6"
- style="background-color: var(--block-background-color);
- color: var(--text-color);text-decoration: none;">
- <h3>{{ .Get "title" }}</h3>
-</a>
-{{ end }}
diff --git a/layouts/_shortcodes/linkding-bookmarks.html b/layouts/_shortcodes/linkding-bookmarks.html
deleted file mode 100644
index fd54c0d2..00000000
--- a/layouts/_shortcodes/linkding-bookmarks.html
+++ /dev/null
@@ -1,68 +0,0 @@
-{{/*
-Shortcode to display Linkding RSS feed bookmarks
-Usage: {{< linkding-bookmarks >}}
-*/}}
-
-{{/* Fetch RSS feed from remote URL with caching */}}
-{{ $url := "https://links.eltr.ac/feeds/shared?limit=12" }}
-{{ $cacheKey := print $url (now.Format "2006-01-02") }}
-{{ $rssContent := resources.GetRemote $url
- (dict
- "key" $cacheKey
- "headers" (dict "User-Agent" "Hugo/1.0")
- )
-}}
-
-{{ if $rssContent }}
- {{/* Parse RSS XML */}}
- {{ $rss := $rssContent.Content | transform.Unmarshal }}
-
- {{ if $rss }}
- {{/* Get channel items */}}
- {{ $items := $rss.channel.item }}
-
- {{ if $items }}
- <div class="linkding-bookmarks">
- {{ range $items }}
- <div class="bookmark-item mb-4 p-4 rounded-md" style="background-color: var(--block-background-color);">
- <h3 class="m-0 mb-2">
- <a href="{{ .link }}" target="_blank" rel="noopener noreferrer"
- style="color: var(--text-color); text-decoration: none;">
- {{ .title }}
- </a>
- </h3>
- {{ if .description }}
- <p class="m-0 text-sm opacity-80">{{ .description }}</p>
- {{ end }}
- {{ if .category }}
- <div class="mt-2 flex flex-wrap gap-2">
- {{ if reflect.IsSlice .category }}
- {{ range .category }}
- <span class="text-secondary text-xs rounded"
- style="background-color: var(--border-color-light);">
- #{{ . }}
- </span>
- {{ end }}
- {{ else }}
- <span class="text-secondary text-xs rounded"
- style="background-color: var(--border-color-light);">
- #{{ .category }}
- </span>
- {{ end }}
- </div>
- {{ end }}
- <div class="mt-2 text-xs opacity-60">
- 于 {{ dateFormat "2006-01-02" .pubDate }} 添加至书签
- </div>
- </div>
- {{ end }}
- </div>
- {{ else }}
- <p>No bookmarks found in RSS feed.</p>
- {{ end }}
- {{ else }}
- <p>Unable to parse RSS feed.</p>
- {{ end }}
-{{ else }}
- <p>Unable to fetch RSS feed from remote URL.</p>
-{{ end }}
diff --git a/layouts/_shortcodes/linkrank.html b/layouts/_shortcodes/linkrank.html
deleted file mode 100644
index 19de1fe6..00000000
--- a/layouts/_shortcodes/linkrank.html
+++ /dev/null
@@ -1,2 +0,0 @@
-{{ partial "stats/external-link-rank" . }}
-
diff --git a/layouts/_shortcodes/music.html b/layouts/_shortcodes/music.html
deleted file mode 100644
index 8017566d..00000000
--- a/layouts/_shortcodes/music.html
+++ /dev/null
@@ -1,53 +0,0 @@
-{{ $title := .Get "title" }}
-{{ $cover := .Get "cover" }}
-{{ $artist := .Get "artist" }}
-{{ $isAlbum := .Get "album" }}
-
-{{ $platforms := slice "bandcamp" "apple" "spotify" "netease" "tidal" }}
-{{ $page := . }}
-
-<div class="flex flex-col md:flex-row md:justify-between md:items-center gap-2">
- <!-- Cover, title, artist -->
- <div class="flex gap-5 items-center">
- <div class="relative flex-shrink-0">
- <img class="w-15 h-15 rd-lg shadow-lg m-0!"
- alt="{{ $title }} music cover"
- src="{{ $cover }}" loading="lazy" />
- {{ if $isAlbum }}
- <div class="w-13 h-13 rd-md bg-neutral-400 dark:bg-neutral-600 absolute top-1 left-3 -z-1"></div>
- {{ end }}
- </div>
- <div>
- <h4 class="m-0 text-size-base flex items-center gap-2 leading-tight">
- <span>{{ $title }}</span>
- {{ if $isAlbum }}
- <span class="font-mono bg-neutral-400 dark:bg-neutral-700 text-white
- px-1 rd text-xs leading-relaxed hidden sm:inline-block"
- >{{ T "music.album" }}</span>
- {{ end }}
- </h4>
- <p class="m-0! text-size-sm text-secondary">{{ $artist }}</p>
- </div>
- </div>
- <!-- Links -->
- <div class="flex gap-2 items-center">
- {{ range $platforms }}
- {{ $code := . }}
- {{ $langcode := (printf "music.%s" $code) }}
- {{ $name := T $langcode }}
- {{ with $page.Get . }}
- <a href="{{ . }}"
- class="block rounded-full px-3 md:p-4 bg-neutral-200/50 dark:bg-neutral-600/50 hover:bg-neutral-200 dark:hover:bg-neutral-600 transition-colors no-underline! text-size-xs inline-flex gap-1 items-center"
- target="_blank"
- title="{{ T "music.openIn" $name }}"
- alt="{{ $name }}"
- data-tooltip
- >
- <img src="{{ printf "/icons/music/%s.png" $code }}"
- loading="lazy" class="block w-3 h-3 md:w-5 md:h-5 m-0!" />
- <span class="md:hidden">{{ $name }}</span>
- </a>
- {{ end }}
- {{ end }}
- </div>
-</div>
diff --git a/layouts/_shortcodes/opml-links.html b/layouts/_shortcodes/opml-links.html
deleted file mode 100644
index 541e0fee..00000000
--- a/layouts/_shortcodes/opml-links.html
+++ /dev/null
@@ -1,19 +0,0 @@
-{{ $opml := hugo.Data.rss }}
-
-<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
-{{ range shuffle $opml.body.outline }}
- {{ $title := index . "-title" }}
- {{ $url := index . "-htmlUrl" }}
- {{ if and $title $url }}
- {{ $parts := split $url "/" }}
- {{ $url := printf "%s//%s/" (index $parts 0) (index $parts 2) }}
- <a href="{{ $url }}" target="_blank"
- class="block rounded-md overflow-hidden box-border p-4"
- style="background-color: var(--block-background-color);
- color: var(--text-color);
- text-decoration: none;">
- <h3 class="m-0 text-lg font-medium">{{ $title }}</h3>
- </a>
- {{ end }}
-{{ end }}
-</div>
diff --git a/layouts/_shortcodes/postcount.html b/layouts/_shortcodes/postcount.html
deleted file mode 100644
index 84c6378f..00000000
--- a/layouts/_shortcodes/postcount.html
+++ /dev/null
@@ -1 +0,0 @@
-{{ len (where .Site.RegularPages "Section" "!=" "") }}
diff --git a/layouts/_shortcodes/quotecard.html b/layouts/_shortcodes/quotecard.html
deleted file mode 100644
index 941280ce..00000000
--- a/layouts/_shortcodes/quotecard.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<div class="text-5 md:text-6 font-italic text-center
- my-12 md:my-20 mx-4 md:mx-12 p-4
- border border-solid border-gray-300 rounded-4 shadow-lg
- rotate-[3deg] bg-[rgba(255,255,255,0.35)] backdrop-blur-md"
- style="background: linear-gradient(rgba(255,255,255,0.1), rgba(255,255,255,0.1)),
- repeating-radial-gradient(rgba(255,255,255,0.25) 0 0.0001%, rgba(255,255,255,0.04) 0 0.0002%) 50% 0 / 2500px 2500px,
- repeating-conic-gradient(rgba(255,255,255,0.25) 0 0.0001%, rgba(255,255,255,0.04) 0 0.0002%) 60% 60% / 2500px 2500px;
- background-blend-mode: normal, difference;"
- {{ with .Get "rotate" }}style="transform: rotate({{. }}deg)"{{ end }}>
- {{ .Inner | markdownify }}
-</div>
diff --git a/layouts/_shortcodes/right.html b/layouts/_shortcodes/right.html
deleted file mode 100644
index 775dcc04..00000000
--- a/layouts/_shortcodes/right.html
+++ /dev/null
@@ -1 +0,0 @@
-<p style="text-align: right">{{ index .Params 0 | markdownify }}</p>
diff --git a/layouts/_shortcodes/wordcount.html b/layouts/_shortcodes/wordcount.html
deleted file mode 100644
index b2f5b414..00000000
--- a/layouts/_shortcodes/wordcount.html
+++ /dev/null
@@ -1,7 +0,0 @@
-{{ $total := 0 }}
-
-{{ range where .Site.RegularPages "Section" "!=" "" }}
- {{ $total = add $total .WordCount }}
-{{ end }}
-
-{{ $total }}