前言
本主題已將內建的 APlayer / Meting 音樂播放器支援移除。若你原本在網站中透過主題注入播放器(例如音樂頁、文章內播放器、懸浮播放器),更新後這些播放器將不會再被主題自動載入。
這篇文章說明:
- 移除影響了哪些東西
- 想要繼續使用的話,如何改用替代方式
- 不需要的話,如何徹底清理殘留資源
一、這次移除的內容
主題層級移除的程式碼如下(若你的網站完全沒有使用播放器,則以下都不需要處理):
themes/butterfly/layout/includes/third-party/aplayer.pug- 原本負責載入
APlayer的 CSS、APlayer.js與Meting.js,並處理 pjax 切頁時播放器銷毀/重跑。
- 原本負責載入
themes/butterfly/layout/includes/additional-js.pug- 原本根據
aplayer & aplayerInject判斷是否引入上面那個檔案,也已移除。
- 原本根據
themes/butterfly/source/css/_layout/third-party.styl與darkmode.styl.aplayer的排版樣式與暗色模式調整。
themes/butterfly/scripts/common/default_config.jsaplayerInject的預設配置。
themes/butterfly/plugins.ymlaplayer_css、aplayer_js、meting_js的 CDN 資源宣告。
總結影響:
- 前台變數
aplayer: true(頁面 Front-matter)已失效。 - 配置
aplayerInject(全站每頁注入)已失效。 - 文章或頁面中的
<div class="aplayer" ...>若無自行引入資源,將不會顯示播放器(會呈現空白或原封不動的 div)。
二、我想要繼續使用,該怎麼做?
主題不再幫你載入播放器,但只要自己引入資源即可,下面提供一種替代做法。
透過 inject 全站引入(最簡單)
在 _config.butterfly.yml 的 inject 區塊加入:
1 | inject: |
注意:本主題的 inject 鍵名為
head/bottom(插入位置在</head>與</body>之前)。
接著在需要的頁面寫入播放器 HTML 即可:
1 | <div class="aplayer" data-id="60198" data-server="netease" data-type="playlist" data-autoplay="true" muted></div> |
若你開啟了 pjax,切換頁面時播放器可能不會自動重新初始化,請在 inject 的 bottom 額外注入下列腳本:
1 | <script> |
補上原本的 .aplayer 樣式
主題也一併移除了 .aplayer 的排版樣式。若希望播放器版面與原本一致,請在 inject 的 head 加入以下 <style>(包含 beautify.enable 時對播放器內列表的外觀修正):
1 | <style> |
若使用 暗色模式,可再補上原本的暗色調整:
1 | .aplayer { |
這些樣式非必要,只是為了讓播放器外觀與原主題更一致;不加也不影響播放器運作。
進階作法:也可以安裝
hexo-tag-aplayer標籤外掛,用標籤外掛方式嵌入播放器,會比直接改主題檔好維護。
三、不需要了,如何徹底清理?
若你決定不再使用,請檢查並清理:
- 設定移除播放器:
_config.butterfly.yml- 移除
aplayerInject區塊(若存在)。 - 移除
inject中你自己加的 APlayer/Meting 的<link>/<script>(如有)。 - 若原本有
Music: /music/的導覽,也一併刪除。
- 移除
- 頁面與文章:
- 刪除音樂頁(
source/music/)。 - 搜尋一段
<div class="aplayer"...>、aplayer:、meting:,於所有文章中移除。
- 刪除音樂頁(
- 使用本文章第一節清單確認殘留位置,逐一清除。
四、更新後自查清單
更新主題後若發現「原本有播放器,現在消失了」,請依序檢查:
-
_config.butterfly.yml(與主題_config.yml)是否還保留aplayerInject/Music選單。 - 文章與頁面是否還有
<div class="aplayer">標籤。 - 是否已在
inject(或 HEAD/BODY)自行加入 APlayer 與 Meting 的資源。 - 若有開 pjax,
pjax:complete時是否重新呼叫loadMeting()。
以上步驟完成後,播放器即可正常且符合你想使用的設定。
除特別聲明外,本博客所有文章均採用CC BY-NC-SA 4.0 授權協議。轉載請註明出處:Butterfly。
