🌟 写在前面:为什么要用外挂标签?

如果你用过Hexo一段时间,大概会发现一个问题:用Markdown写文章,有些东西就是搞不定

想插入一段音乐?想放个B站视频?想让图片在首页也能正常显示?Markdown语法表示:臣妾做不到啊。

这时候就需要请出今天的主角——Hexo外挂标签(Tag Plugins)

简单来说,外挂标签是Hexo提供的一种特殊语法,让你可以在Markdown文章里插入那些“普通Markdown搞不定”的东西。它们长得像这样:

1
{% 标签名 参数 %}

看起来有点像代码块,但渲染出来就是各种炫酷的效果。

看起来有点像代码块,但渲染出来就是各种炫酷的效果。

作为一个爱折腾的射手座,我把Hexo常用的外挂标签都摸了一遍。今天这篇教程,就从最基础的资产标签讲起,再到音乐、视频、代码块,最后到那些能让你博客“开挂”的第三方插件。

跟着这篇教程走,保证你能把Hexo的外挂标签玩得明明白白。 🌿


📦 第一章:准备工作——让Hexo认识外挂标签

1.1 外挂标签从哪来?

Hexo的外挂标签主要有两种来源:

来源类型 说明 例子
内置标签 Hexo核心自带,装了Hexo就能用 asset_img, blockquote, code
第三方插件 需要额外安装的社区插件 hexo-tag-aplayer, hexo-tag-bilibili

1.2 内置标签:零配置直接使用

内置标签不需要任何安装配置,只要你的Hexo版本在3.0以上(现在应该没人用更老的版本了吧),直接在文章里写就能用。

1.3 第三方插件:按需安装

第三方插件需要用npm安装。以音乐插件为例:

1
npm install --save hexo-tag-aplayer

安装完成后,有些插件需要在_config.yml里做简单配置,具体看插件文档。后面讲到具体插件时我会详细说。


🖼️ 第二章:资产标签——解决图片显示的世纪难题

2.1 为什么需要资产标签?

这是Hexo新手最容易踩的坑。

如果你在文章里放了一张图片,用Markdown语法![](example.jpg)引用。在文章页面看是正常的,但一回到首页——图片裂了

为什么?因为首页的文章摘要里,图片路径解析错了。

Hexo官方提供了三种资产标签来解决这个问题:

标签 作用 示例
asset_path 获取资产文件的路径 {% asset_path example.jpg %}
asset_img 插入图片 {% asset_img example.jpg 图片描述 %}
asset_link 插入文件下载链接 {% asset_link example.pdf 点击下载 %}

2.2 开启文章资源文件夹

要使用资产标签,必须先开启文章资源文件夹功能。在博客根目录的_config.yml里找到或添加这一行:

1
post_asset_folder: true

开启后,以后每次用hexo new "文章标题"创建新文章时,Hexo会自动创建一个与文章同名的文件夹。比如你创建hexo-new-标签教程.md,就会自动生成一个hexo-new-标签教程文件夹。

把图片放进去,结构是这样的:

1
2
3
4
5
6
source/
_posts/
hexo-new-标签教程.md
hexo-new-标签教程/
example.jpg
background.png

2.3 asset_img 标签使用详解

基本语法

示例

渲染结果(首页和文章页都能正常显示):

1
<img src="/2026/03/14/hexo-new-标签教程/example.jpg" alt="这是一张示例图片">

带空格的文件名

如果文件名或描述里有空格,要用引号括起来:

2.4 偷懒大法:不用标签也能用Markdown插图片

如果你嫌写{% asset_img %}太麻烦,Hexo 3.1.0以上版本提供了一个更优雅的方案。

_config.yml里添加以下配置:

1
2
3
4
post_asset_folder: true
marked:
prependRoot: true
postAsset: true

配置完成后,你就可以直接在文章里用普通的Markdown语法引用图片了:

Hexo会自动把它解析成正确的文章路径。这才是广东人说的“懒人有懒福”


🎵 第三章:音乐标签——让博客会唱歌

3.1 安装音乐插件

Hexo官方推荐的音乐插件是hexo-tag-aplayer,基于APlayer播放器,支持MetingJS从各大音乐平台获取歌单。

bash

1
npm install --save hexo-tag-aplayer

安装完成后,在博客根目录的_config.yml里添加配置:

1
2
3
4
# aplayer
aplayer:
meting: true
asset_inject: false

然后在主题的配置文件中引入必要的CSS和JS文件(不同主题位置不同,一般在custom_csscustom_js处添加):

1
2
3
4
5
6
custom_css:
- //cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css

custom_js:
- //cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js
- //cdn.jsdelivr.net/gh/metowolf/MetingJS@1.2/dist/Meting.min.js

3.2 meting 标签语法

hexo-tag-aplayer提供了meting标签,可以从网易云、腾讯、虾米等平台插入音乐。

基本语法

1
{% meting 歌曲ID 平台 类型 [参数] %}

参数说明

参数 默认值 说明
id 必须值 歌曲ID / 歌单ID / 专辑ID / 搜索关键词
server 必须值 音乐平台:netease(网易云), tencent(腾讯), kugou(酷狗), xiami(虾米), baidu(百度)
type 必须值 类型:song(歌曲), playlist(歌单), album(专辑), search(搜索), artist(歌手)
theme #ad7a86 播放器主题色
mutex true 是否开启互斥模式(同时只能播放一首)
preload auto 预加载:none, metadata, auto
autoplay false 是否自动播放(移动端不支持)
loop all 循环模式:all(全部循环), one(单曲循环), none(不循环)
order list 播放顺序:list(列表顺序), random(随机)
volume 0.7 音量,0-1之间

3.3 常用示例

插入单首歌曲(网易云,歌曲ID:190378164):

插入歌单(腾讯音乐,歌单ID:7724497259):

插入歌手热门歌曲(网易云,歌手ID:2116):

3.4 创建专属音乐页面

如果你想做一个专门的音乐页面:

1
hexo new page music

然后在source/music/index.md里写:

1
2
3
4
5
6
---
title: 我的歌单
date: 2026-03-14
---

{% meting "7724497259" "tencent" "playlist" "theme:#3F51B5" "mutex:true" "preload:auto" %}

最后在主题菜单里加上这个页面的链接,你的博客就有专属音乐厅了。


🎬 第四章:视频标签——让博客变成小影院

4.1 内置视频标签

Hexo内置了几个视频平台的标签:

标签 说明 示例
youtube 插入YouTube视频 {% youtube video_id %}
vimeo 插入Vimeo视频 {% vimeo video_id %}

YouTube示例

1
{% youtube dQw4w9WgXcQ %}

4.2 B站视频插件

国内用户最常用的当然是B站。安装hexo-tag-bilibili插件:

1
npm install --save hexo-tag-bilibili

使用方法

1
{% bilibili BV号 [高度] [宽度] %}

示例

也可以指定尺寸:


📝 第五章:文本排版标签——让文章更有层次

5.1 块引用(blockquote)

内置的blockquote标签可以让引用更规范:

基本语法

text

1
2
3
{% blockquote [作者] [来源] %}
引用内容
{% endblockquote %}

示例

死并非生的对立面,而是作为生的一部分永存。

村上春树 《挪威的森林》

5.2 代码块(code)

虽然Markdown本身支持代码块,但Hexo的code标签提供了更多功能:

1
2
3
{% code [语言] [标题] %}
代码内容
{% endcode %}

示例

示例代码
1
2
3
function hello() {
console.log("Hello, Hexo!");
}

5.3 链接标签(link)

link标签可以创建指向文章或外部链接的链接:

1
{% link 文字 URL [标题] %}

示例


📊 第六章:数据可视化标签——让博客会说话

6.1 安装图表插件

如果你想让博客更有“技术范儿”,可以试试hexo-graph插件,它基于ECharts,可以生成各种统计图表:

1
npm install --save hexo-graph

6.2 支持的图表类型

图表类型 说明 用途
热力图 显示发文频率的时间分布 分析写作习惯
月度统计 每月发文数量趋势 观察创作节奏
分类统计 文章分类占比 了解内容分布
标签统计 标签使用频率 发现热门话题

6.3 使用示例

在文章中插入热力图:

1
<div class="hexo-graph-heatmap"></div>

插入分类统计:

1
<div class="hexo-graph-categories"></div>

这些图表会自动读取你博客的数据,生成可视化统计,特别适合写在“关于我”或者“年度总结”这类文章里。


🎨 第七章:进阶玩法——让标签“开挂”

7.1 Stellar主题的宝藏标签

如果你用的是Stellar主题(一个超强大的Hexo主题),那你简直是挖到宝了。它内置了海量的标签组件,而且可以互相嵌套混搭。

Stellar的标签包括:

  • 提示框{% note %}
  • 时间线{% timeline %}
  • 折叠块{% fold %}
  • 标签页{% tabs %}
  • 按钮{% button %}
  • 标签组{% taggroup %}

具体用法可以看Stellar的官方文档,这里就不展开了,只能说:如果你追求极致的排版效果,Stellar值得拥有

7.2 自定义标签样式

如果你用的是Butterfly等热门主题,也可以通过修改样式文件来让标签更炫酷。有技术大佬分享过如何把标签改成源计划-方舟风格——金属质感边框、发光特效、动态悬浮,像存储卡一样。

虽然这已经超出“外挂标签”的范畴,属于主题改造了,但如果你感兴趣,可以搜索“Butterfly主题 标签改造”之类的关键词。


🐛 第八章:常见问题解答

❓ Q1:为什么我的asset_img图片还是不显示?

可能原因

  • post_asset_folder: true没开启
  • 图片没放在正确的同名文件夹里
  • 文件名大小写写错了
  • 用了Markdown语法但没配置prependRoot

解决方法:对照第二章一步步检查。

❓ Q2:音乐播放器显示不出来?

可能原因

  • 插件没安装成功
  • CSS/JS没引入
  • 歌单ID填错了
  • 音乐平台限制了外链

解决方法

  1. 确认npm list | grep aplayer能看到插件
  2. 检查主题配置文件里的custom_csscustom_js
  3. 先用单曲测试,排除歌单问题

❓ Q3:标签插件和Markdown语法混用会冲突吗?

不会冲突。Hexo会先解析标签插件,再渲染Markdown。除非你在front-matter里设置了disableNunjucks: true,那样会禁用所有Nunjucks标签(包括标签插件)。

❓ Q4:怎么知道有哪些第三方插件可用?

去Hexo官网的插件页面hexo.io/plugins/),有500多个插件分类展示。可以按功能搜索,比如想找评论插件就搜“comment”,想找图片就搜“image”。


🌈 写在最后:标签是工具,内容是灵魂

写完这篇长文,窗外广东的天已经黑了。

回想起自己刚开始折腾Hexo的时候,也被图片显示问题困扰过,也为怎么插入音乐发愁过。后来一个个标签摸过来,才发现:原来Hexo比我想象的要强大得多

外挂标签这东西,说到底是工具。工具的意义不是让你炫技,而是让你能更自由地表达。

想放一段音乐,就能放;想插个视频,就能插;想让首页图片不裂开,就能不裂开。工具服务于表达,表达服务于内容——这才是外挂标签存在的意义。

希望这篇教程能帮你把Hexo玩得更顺手。过程中遇到任何问题,欢迎来评论区留言。我会像广东阿妈煲汤一样,慢慢给你解答——火候不到不揭盖,问题没解决不罢休。

那么,快去给你的博客加点“外挂”吧! 🌟


📚 附录:常用标签速查表

标签 用途 来源 示例
{% asset_img %} 插入图片 内置 {% asset_img photo.jpg 我的照片 %}
{% asset_link %} 插入下载链接 内置 {% asset_link file.pdf 下载文档 %}
{% meting %} 插入音乐 第三方 {% meting "190378164" "netease" "song" %}
{% youtube %} 插入YouTube视频 内置 {% youtube dQw4w9WgXcQ %}
{% bilibili %} 插入B站视频 第三方 {% bilibili BV1xx411c7mH %}
{% blockquote %}` | 块引用 | 内置 | `{% blockquote 作者 %}内容{% endblockquote %}
{% code %}` | 代码块 | 内置 | `{% code lang:js %}代码{% endcode %}
{% link %} 链接 内置 {% link 文字 url %}

[王の言]
2026年3月14日
广东,窗外有风,耳机里有歌