diff options
| author | Eltrac <hi@guhub.cn> | 2025-06-06 09:00:36 +0800 |
|---|---|---|
| committer | Eltrac <hi@guhub.cn> | 2025-06-06 09:00:36 +0800 |
| commit | 8397b55040d23c19c7e6aae30badc55e54319bf2 (patch) | |
| tree | a57dffcfc208ff85e2af1422f61f67f3d045dfb2 /layouts | |
| parent | 87761df9fde0885d64a4eb853c18245ca0779ce3 (diff) | |
| parent | 227fb4cb419a44132340963f78147e8df604a0ee (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.html | 8 | ||||
| -rw-r--r-- | layouts/fictions/single.html | 9 | ||||
| -rw-r--r-- | layouts/library/section.html | 2 | ||||
| -rw-r--r-- | layouts/library/single.html | 7 | ||||
| -rw-r--r-- | layouts/partials/head/css.html | 7 | ||||
| -rw-r--r-- | layouts/partials/scripts.html | 51 | ||||
| -rw-r--r-- | layouts/posts/single.html | 7 | ||||
| -rw-r--r-- | layouts/shortcodes/aplayer.html | 9 |
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> |
