summaryrefslogtreecommitdiff
path: root/layouts
diff options
context:
space:
mode:
authorEltrac <hi@guhub.cn>2025-06-06 09:00:36 +0800
committerEltrac <hi@guhub.cn>2025-06-06 09:00:36 +0800
commit8397b55040d23c19c7e6aae30badc55e54319bf2 (patch)
treea57dffcfc208ff85e2af1422f61f67f3d045dfb2 /layouts
parent87761df9fde0885d64a4eb853c18245ca0779ce3 (diff)
parent227fb4cb419a44132340963f78147e8df604a0ee (diff)
Merge branch 'master' of https://github.com/BigCoke233/geek-death-project
Former-commit-id: 430926459e4846549b1571c460e2596874663c1b
Diffstat (limited to 'layouts')
-rw-r--r--layouts/cards/single.html8
-rw-r--r--layouts/fictions/single.html9
-rw-r--r--layouts/library/section.html2
-rw-r--r--layouts/library/single.html7
-rw-r--r--layouts/partials/head/css.html7
-rw-r--r--layouts/partials/scripts.html51
-rw-r--r--layouts/posts/single.html7
-rw-r--r--layouts/shortcodes/aplayer.html9
8 files changed, 91 insertions, 9 deletions
diff --git a/layouts/cards/single.html b/layouts/cards/single.html
index a4d2a9f1..d75d1ffa 100644
--- a/layouts/cards/single.html
+++ b/layouts/cards/single.html
@@ -10,7 +10,13 @@
<div class="card markdown-body post-content"
style="view-transition-name: card-{{ .File.UniqueID }}">
<div class="card-header">
- <h3 class="card-title">{{ .Title }}</h3>
+ <h3 class="card-title"
+ data-pagefind-meta="title"
+ data-pagefind-sort="date[data-date], weight[data-weight]"
+ data-date="{{ .Date.Format "2006-01-02" }}"
+ data-weight="5">
+ {{ .Title }}
+ </h3>
{{- if .Params.tags }}
<p class="card-tags">
{{- range .Params.tags }}
diff --git a/layouts/fictions/single.html b/layouts/fictions/single.html
index 85ab59de..e16dd4c7 100644
--- a/layouts/fictions/single.html
+++ b/layouts/fictions/single.html
@@ -10,11 +10,14 @@
class="post-header fiction-header"
>
{{ partial "components/banner.html" . }}
- <h1 class="post-title">{{ .Title }}</h1>
+ <h1 class="post-title" data-pagefind-meta="title">{{ .Title }}</h1>
<div class="post-meta">
{{ if .Date }}
- <time class="post-date" datetime="{{ .Date.Format "2006-01-02 15:04:05 MST" }}">
- {{ .Date.Format "2006-1-2" }}
+ <time class="post-date"
+ datetime="{{ .Date.Format "2006-01-02 15:04:05 MST" }}"
+ data-pagefind-sort="date[datetime], weight[data-weight]"
+ data-weight="15">
+ {{ .Date.Format "2006年1月2日" }}
</time>
{{ end }}
</div>
diff --git a/layouts/library/section.html b/layouts/library/section.html
index 3b4e0199..221cc005 100644
--- a/layouts/library/section.html
+++ b/layouts/library/section.html
@@ -10,7 +10,7 @@
<div class="book{{ if eq .Params.rating 1 }} badbook{{ end }}{{ if eq .Params.rating 5 }} goodbook{{ end }}">
<a href="{{ .Permalink }}" class="book-cover" style="view-transition-name: book-{{ .Title }}">
<img
- class="lazy" src="{{ .Params.cover }}"
+ class="lazy" src="{{ .Params.cover }}!small"
style="view-transition-name: book-{{ .File.UniqueID }}" />
</a>
</div>
diff --git a/layouts/library/single.html b/layouts/library/single.html
index 3bd00ca3..fa53149b 100644
--- a/layouts/library/single.html
+++ b/layouts/library/single.html
@@ -8,7 +8,7 @@
src="{{ .Params.cover }}"
/>
</div>
- <h1 class="book-title">{{ .Title }}</h1>
+ <h1 class="book-title" data-pagefind-meta="title">{{ .Title }}</h1>
{{- $rating := .Params.rating -}}
{{- $fullStars := math.Floor $rating -}}
<p class="book-author">
@@ -35,7 +35,10 @@
{{ .Content }}
</div>
<div class="book-footer">
- <p>于 {{ .Date.Format "2006-01-02" }} 读完</p>
+ <p>于 <time
+ data-pagefind-sort="date[data-date], weight[data-weight]"
+ data-date="{{ .Date.Format "2006-01-02" }}"
+ data-weight="10">{{ .Date.Format "2006-01-02" }}</time> 读完</p>
</div>
</div>
{{ partial "components/comment.html" . }}
diff --git a/layouts/partials/head/css.html b/layouts/partials/head/css.html
index 63a2aa03..bf041938 100644
--- a/layouts/partials/head/css.html
+++ b/layouts/partials/head/css.html
@@ -7,6 +7,13 @@
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap" rel="stylesheet">
{{ end }}
+<!-- Aplayer -->
+{{ if .Params.aplayer }}
+{{ with resources.Get "css/aplayer.css" }}
+<style>{{ .Content | safeCSS }}</style>
+{{ end }}
+{{ end }}
+
<!-- Extra -->
{{ range .Site.Params.extraCSSFiles -}}
<link
diff --git a/layouts/partials/scripts.html b/layouts/partials/scripts.html
index 308038ff..12beca10 100644
--- a/layouts/partials/scripts.html
+++ b/layouts/partials/scripts.html
@@ -8,6 +8,57 @@
<script>Fancybox.bind("[data-fancybox]");</script>
{{- end }}
+{{ if .Params.aplayer }}
+<script>
+document.addEventListener("DOMContentLoaded", function () {
+ const lazyPlayers = document.querySelectorAll(".lazy-aplayer");
+ if (!lazyPlayers.length) return;
+
+ const loadAPlayer = () => {
+ if (window.APlayer) return Promise.resolve();
+ return new Promise((resolve, reject) => {
+ const script = document.createElement('script');
+ script.src = "https://unpkg.com/aplayer@1.10.1/dist/APlayer.min.js";
+ script.onload = resolve;
+ script.onerror = reject;
+ document.body.appendChild(script);
+ });
+ };
+
+ const observer = new IntersectionObserver((entries, obs) => {
+ entries.forEach(entry => {
+ if (entry.isIntersecting) {
+ loadAPlayer().then(() => {
+ const el = entry.target;
+ const id = el.dataset.id ? `-` + el.dataset.id : ``;
+ const container = document.createElement('div');
+ container.id = `aplayer${id}`;
+ el.appendChild(container);
+
+ const ap = new APlayer({
+ container: container,
+ audio: [{
+ name: el.dataset.name,
+ artist: el.dataset.artist,
+ url: el.dataset.url,
+ cover: el.dataset.cover
+ }]
+ });
+
+ ap.on('play', () => umami?.track?.('🎵 Play music with aPlayer'));
+ ap.on('ended', () => umami?.track?.('🎵 Played entiresong with aPlayer'));
+
+ obs.unobserve(el);
+ });
+ }
+ });
+ });
+
+ lazyPlayers.forEach(player => observer.observe(player));
+});
+</script>
+{{ end }}
+
<script>
littlefoot.littlefoot({
dismissOnUnhover: true,
diff --git a/layouts/posts/single.html b/layouts/posts/single.html
index ced18720..dd6d4b8b 100644
--- a/layouts/posts/single.html
+++ b/layouts/posts/single.html
@@ -9,7 +9,7 @@
{{ partial "components/banner.html" . }}
<!-- Title and Subtitle -->
<h1 class="post-title">
- {{ .Title }}
+ <span data-pagefind-meta="title">{{ .Title }}</span>
{{ with .Params.subtitle }}
<small class="post-subtitle">{{ . }}</small>
{{ end }}
@@ -37,7 +37,10 @@
{{ $fuzzyTime = "深夜" }}
{{ end }}
- <time class="post-date" datetime="{{ .Date.Format "2006-01-02 15:04:05 MST" }}">
+ <time class="post-date"
+ datetime="{{ .Date.Format "2006-01-02 15:04:05 MST" }}"
+ data-pagefind-sort="date[datetime], weight[data-weight]"
+ data-weight="{{ if .Params.featured }}30{{ else }}20{{ end }}">
{{ .Date.Format "2006年1月2日" }} {{ $fuzzyTime }}
</time>
{{ end }}
diff --git a/layouts/shortcodes/aplayer.html b/layouts/shortcodes/aplayer.html
new file mode 100644
index 00000000..84c83002
--- /dev/null
+++ b/layouts/shortcodes/aplayer.html
@@ -0,0 +1,9 @@
+<div
+ class="lazy-aplayer"
+ data-name="{{ .Get "name" }}"
+ data-artist="{{ .Get "artist" }}"
+ data-url="{{ .Get "url" }}"
+ data-cover="{{ .Get "cover" }}"
+ {{ with .Get "id" }}data-id="{{ . }}"{{ end }}
+ style="margin: 1rem 0;"
+></div>