diff options
author | amzrk2 | 2021-01-10 21:11:57 +0800 |
---|---|---|
committer | amzrk2 | 2021-01-10 21:11:57 +0800 |
commit | e5b7e226f064268686c9799e9e54910e3b83b38b (patch) | |
tree | d1792315f4419034f2557f06fca5620f4060bd94 /layouts/partials | |
parent | 1500c3c475e0ff99e6693dd11118e1a937b9ff34 (diff) | |
download | hugo-theme-fuji-e5b7e226f064268686c9799e9e54910e3b83b38b.tar.gz hugo-theme-fuji-e5b7e226f064268686c9799e9e54910e3b83b38b.tar.bz2 hugo-theme-fuji-e5b7e226f064268686c9799e9e54910e3b83b38b.zip |
new: in-post aplayer support
Diffstat (limited to 'layouts/partials')
-rw-r--r-- | layouts/partials/head.html | 2 | ||||
-rw-r--r-- | layouts/partials/scripts-end.html | 72 | ||||
-rw-r--r-- | layouts/partials/scripts-front.html | 2 |
3 files changed, 48 insertions, 28 deletions
diff --git a/layouts/partials/head.html b/layouts/partials/head.html index f4ebe64..85c840a 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -36,7 +36,7 @@ {{ with .Site.Params.googleAdsense }} <script async data-ad-client="ca-pub-{{ . }}" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> {{ end}} -{{ if .Params.player }} +{{ if .Params.aplayer }} <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.css" /> {{ end }} {{ if .Site.Params.useDisqusJS }} diff --git a/layouts/partials/scripts-end.html b/layouts/partials/scripts-end.html index 2a2f316..6db0f43 100644 --- a/layouts/partials/scripts-end.html +++ b/layouts/partials/scripts-end.html @@ -1,10 +1,12 @@ {{ if eq .Section "search" }} -<script defer src="https://cdn.jsdelivr.net/combine/npm/art-template@4.13.2/lib/template-web.min.js,npm/fuse.js@6.4.1"></script> +<script defer src="https://cdn.jsdelivr.net/npm/art-template@4.13.2/lib/template-web.min.js"></script> +<script defer src="https://cdn.jsdelivr.net/npm/fuse.js@6.4.6/dist/fuse.min.js"></script> {{ else if eq .Section "archives" }} {{ else }} -<script defer src="https://cdn.jsdelivr.net/combine/npm/medium-zoom@1.0.6,npm/lazysizes@5.2.2"></script> -<script defer src="https://cdn.jsdelivr.net/npm/prismjs@1.21.0/components/prism-core.min.js"></script> -<script defer src="https://cdn.jsdelivr.net/npm/prismjs@1.21.0/plugins/autoloader/prism-autoloader.min.js"></script> +<script defer src="https://cdn.jsdelivr.net/npm/medium-zoom@1.0.6/dist/medium-zoom.min.js"></script> +<script defer src="https://cdn.jsdelivr.net/npm/lazysizes@5.3.0/lazysizes.min.js"></script> +<script defer src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/components/prism-core.min.js"></script> +<script defer src="https://cdn.jsdelivr.net/npm/prismjs@1.23.0/plugins/autoloader/prism-autoloader.min.js"></script> {{ end }} {{ $options := (dict "targetPath" "assets/js/fuji.min.js" "minify" true "target" "es2015" "format" "iife") }} {{ $built := resources.Get "js/fuji.js" | js.Build $options }} @@ -12,33 +14,51 @@ {{ if or .Params.math .Site.Params.math }} {{ partial "math.html" . }} {{ end }} -{{ with .Params.player }} +{{ with .Params.aplayer }} <script src="https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.js"></script> <script> - // in-post aplayer - // prettier-ignore - var aPlayer = new APlayer({ - container: document.getElementById('post-aplayer'), + // in-post aplayer + var pContainers = document.querySelectorAll('.content article .post-aplayer'); + if (pContainers && pContainers.length > 0) { + pContainers.forEach(function (container) { + var attrs = ['urls', 'names', 'artists', 'covers']; + attrs = attrs.map(function (attr) { + var arr = container.getAttribute('data-' + attr).split(','); + if (arr.length > 0){ + return arr.map(function (val) { + return String(val).trim(); + }); + } else { + return attr; + } + }); + var audio = []; + for (var i = 0; i < attrs[0].length; i++) { + var a = { + name: attrs[1][i], + url: attrs[0][i], + }; + (typeof attrs[2] !== 'string') && (a.artist = attrs[2][i]); + (typeof attrs[3] !== 'string') && (a.cover = attrs[3][i]); + audio.push(a); + } + new APlayer({ + container: container, theme: '#8f82bc', volume: 0.1, listFolded: true, - audio: [{{- range $.Params.player -}} - { - name: '{{ .playerName }}', - artist: '{{ .playerArtist }}', - url: '{{ .playerURL }}', - cover: '{{ .playerCover }}' - }, - {{- end -}}] - }); - // aplayer toc anchors fix - // see https://github.com/MoePlayer/APlayer/issues/242#issuecomment-602471423 - document.addEventListener('DOMContentLoaded', function () { - var issueTocEle = document.querySelector('.sidebar-toc'); - if (issueTocEle) { - var newTocEle = issueTocEle.cloneNode(true); - issueTocEle.parentNode.replaceChild(newTocEle, issueTocEle); - } + audio: audio + }); }); + } + // aplayer toc anchors fix + // see https://github.com/MoePlayer/APlayer/issues/242#issuecomment-602471423 + document.addEventListener('DOMContentLoaded', function () { + var issueTocEle = document.querySelector('.sidebar-toc'); + if (issueTocEle) { + var newTocEle = issueTocEle.cloneNode(true); + issueTocEle.parentNode.replaceChild(newTocEle, issueTocEle); + } + }); </script> {{ end }}
\ No newline at end of file diff --git a/layouts/partials/scripts-front.html b/layouts/partials/scripts-front.html index c28912a..c802702 100644 --- a/layouts/partials/scripts-front.html +++ b/layouts/partials/scripts-front.html @@ -10,4 +10,4 @@ document.body.setAttribute('data-theme', fujiThemeData === 'dark' ? 'dark' : 'light'); } } -</script> +</script>
\ No newline at end of file |