summaryrefslogtreecommitdiff
path: root/layouts/_partials/scripts.html
diff options
context:
space:
mode:
authorEltrac <hi@guhub.cn>2025-07-18 18:46:45 +0800
committerEltrac <hi@guhub.cn>2025-07-18 18:46:45 +0800
commit70cfd74bcfab6a74dd9755c1946109e6576158a8 (patch)
tree83d44f5645e49d3bfc948d0aa0ecc399c4fe3cab /layouts/_partials/scripts.html
parent9bea54b8d6e25b2c194e8555210fb6df16e3c851 (diff)
refactor: make partials of all embeded JavaScript code
Diffstat (limited to 'layouts/_partials/scripts.html')
-rw-r--r--layouts/_partials/scripts.html67
1 files changed, 4 insertions, 63 deletions
diff --git a/layouts/_partials/scripts.html b/layouts/_partials/scripts.html
index 12beca10..ac62974b 100644
--- a/layouts/_partials/scripts.html
+++ b/layouts/_partials/scripts.html
@@ -1,67 +1,8 @@
-<!-- third-party libraries -->
{{- range .Site.Params.externalJSFiles }}
<script src="{{ $.Site.Params.staticPrefix }}{{ . | relURL }}"></script>
{{- end }}
-{{- if or (in .Section "posts") (in .Section "cards") (in .Section "library") (eq .Type "single") }}
- <script src="/js/fancybox.umd.js"></script>
- <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,
- activateOnHover: true
- });
-</script>
+{{ partial "scripts/toc-js" . }}
+{{ partial "scripts/littlefoot-js" . }}
+{{ partial "scripts/fancybox-js" . }}
+{{ partial "scripts/aplayer-js" . }}