惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Y
Y Combinator Blog
月光博客
月光博客
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
Last Week in AI
Last Week in AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
博客园 - 司徒正美
V
Visual Studio Blog
小众软件
小众软件
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
A
About on SuperTechFans
The Cloudflare Blog

Butterfly

Butterfly 5.6 更新日誌 香港銀行開戶推薦 (附邀請碼) Butterfly 5.5 更新日誌 Butterfly 5.4 更新日誌 Butterfly 5.3 更新日誌 Butterfly 5.2 更新日誌 Butterfly 5.1 更新日誌 Butterfly 5.0 更新日誌 Butterfly 4.13 更新日誌 Butterfly 4.12 更新日誌 Butterfly 4.11 更新日誌 Butterfly 4.10 更新日誌 自定義側邊欄 當設置 top_img 為 false 時 Butterfly添加全局吸底Aplayer教程 自定義代碼配色 Butterfly 打賞 Butterfly 更新日誌 Butterfly 文檔(六) 進階教程 Butterfly 文檔(五) 主題問答 Butterfly 文檔(四) 標簽外挂 Butterfly 文檔(三) 主題配置 Butterfly 文檔(二) 主題頁面 Butterfly 文檔(一) 快速開始 沒有封面 標籤外掛(Tag Plugins) Markdown Style test
Butterfly 移除內建 APlayer / Meting 後的替代方法
Jerry · 2026-08-02 · via Butterfly

前言

本主題已將內建的 APlayer / Meting 音樂播放器支援移除。若你原本在網站中透過主題注入播放器(例如音樂頁、文章內播放器、懸浮播放器),更新後這些播放器將不會再被主題自動載入

這篇文章說明:

  • 移除影響了哪些東西
  • 想要繼續使用的話,如何改用替代方式
  • 不需要的話,如何徹底清理殘留資源

一、這次移除的內容

主題層級移除的程式碼如下(若你的網站完全沒有使用播放器,則以下都不需要處理):

  1. themes/butterfly/layout/includes/third-party/aplayer.pug
    • 原本負責載入 APlayer 的 CSS、APlayer.jsMeting.js,並處理 pjax 切頁時播放器銷毀/重跑。
  2. themes/butterfly/layout/includes/additional-js.pug
    • 原本根據 aplayer & aplayerInject 判斷是否引入上面那個檔案,也已移除。
  3. themes/butterfly/source/css/_layout/third-party.styldarkmode.styl
    • .aplayer 的排版樣式與暗色模式調整。
  4. themes/butterfly/scripts/common/default_config.js
    • aplayerInject 的預設配置。
  5. themes/butterfly/plugins.yml
    • aplayer_cssaplayer_jsmeting_js 的 CDN 資源宣告。

總結影響:

  • 前台變數 aplayer: true(頁面 Front-matter)已失效
  • 配置 aplayerInject(全站每頁注入)已失效
  • 文章或頁面中的 <div class="aplayer" ...> 若無自行引入資源,將不會顯示播放器(會呈現空白或原封不動的 div)。

二、我想要繼續使用,該怎麼做?

主題不再幫你載入播放器,但只要自己引入資源即可,下面提供一種替代做法。

透過 inject 全站引入(最簡單)

_config.butterfly.ymlinject 區塊加入:

1
2
3
4
5
6
inject:
head:
- '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.css">'
bottom:
- '<script src="https://cdn.jsdelivr.net/npm/aplayer@1.10.1/dist/APlayer.min.js"></script>'
- '<script src="https://cdn.jsdelivr.net/npm/meting@2.0.1/dist/Meting.min.js"></script>'

注意:本主題的 inject 鍵名為 headbottom(插入位置在 </head></body> 之前)。

接著在需要的頁面寫入播放器 HTML 即可:

1
<div class="aplayer" data-id="60198" data-server="netease" data-type="playlist" data-autoplay="true" muted></div>

若你開啟了 pjax,切換頁面時播放器可能不會自動重新初始化,請在 injectbottom 額外注入下列腳本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
var __runMeting = function () {

if (window.aplayers) {
try { window.aplayers.forEach(function (p) { if (!p.options.fixed) p.destroy(); }); } catch (e) {}
}

if (typeof loadMeting === 'function' && document.getElementsByClassName('aplayer').length) {
loadMeting();
}
};
window.addEventListener('load', __runMeting);
document.addEventListener('pjax:complete', __runMeting);
</script>

補上原本的 .aplayer 樣式

主題也一併移除了 .aplayer 的排版樣式。若希望播放器版面與原本一致,請在 injecthead 加入以下 <style>(包含 beautify.enable 時對播放器內列表的外觀修正):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<style>
.aplayer {
color: #4c4948;
}
.container .aplayer {
margin: 0 0 20px;
}

.container .aplayer ol,
.container .aplayer ul {
margin: 0;
padding: 0;
}
.container .aplayer li {
margin: 0;
padding: 0 15px;
}
.container .aplayer li::before {
content: none;
}
</style>

若使用 暗色模式,可再補上原本的暗色調整:

1
2
3
.aplayer {
filter: brightness(.8);
}

這些樣式非必要,只是為了讓播放器外觀與原主題更一致;不加也不影響播放器運作。

進階作法:也可以安裝 hexo-tag-aplayer 標籤外掛,用標籤外掛方式嵌入播放器,會比直接改主題檔好維護。


三、不需要了,如何徹底清理?

若你決定不再使用,請檢查並清理:

  1. 設定移除播放器_config.butterfly.yml
    • 移除 aplayerInject 區塊(若存在)。
    • 移除 inject 中你自己加的 APlayer/Meting 的 <link><script>(如有)。
    • 若原本有 Music: /music/ 的導覽,也一併刪除。
  2. 頁面與文章
    • 刪除音樂頁(source/music/)。
    • 搜尋一段 <div class="aplayer"...>aplayer:meting:,於所有文章中移除。
  3. 使用本文章第一節清單確認殘留位置,逐一清除。

四、更新後自查清單

更新主題後若發現「原本有播放器,現在消失了」,請依序檢查:

  • _config.butterfly.yml(與主題 _config.yml)是否還保留 aplayerInjectMusic 選單。
  • 文章與頁面是否還有 <div class="aplayer"> 標籤。
  • 是否已在 inject(或 HEAD/BODY)自行加入 APlayer 與 Meting 的資源。
  • 若有開 pjax,pjax:complete 時是否重新呼叫 loadMeting()

以上步驟完成後,播放器即可正常且符合你想使用的設定。

版權聲明: 除特別聲明外,本博客所有文章均採用CC BY-NC-SA 4.0 授權協議。轉載請註明出處:Butterfly

avatar

Jerry

A Simple and Card UI Design theme for Hexo

主題 GitHub