第三部分:集成与配置 Butterfly 主题——赋予博客华丽外观

第三部分:集成与配置 Butterfly 主题——赋予博客华丽外观
Prorise第三部分:集成与配置 Butterfly 主题——赋予博客华丽外观
Hexo Anzhiyu 主题
快速起步
Butterfly 主题提供了丰富的内置配置项,让我们可以在不修改主题代码的情况下,实现背景、字体、配色等基础元素的个性化,但是从零打造一个全新样式的面板似乎有些太过困难了,我们采用在魔改Butterfly领域最出名的Anzhiyu主题来作为我们的基础起点
温馨提示
Anzhiyu主题拥有Main(稳定版)和Dev(测试版)两种版本, 我们推荐您安装使用Github(稳定版)以获得最佳的主题体验
下载 最新 release 版本 解压到 themes
目录,并将解压出的文件夹重命名为 anzhiyu
(这一步非常重要)
覆盖配置
将anzhiyu
文件夹的_config.yml
内容重命名为_config.anzhiyu.yml
放置在hexo文件夹根目录例如:Prorise-blog/_config.anzhiyu.yml
最后修改hexo的_config.yml
1 | # --- 扩展 (Extensions) --- |
这样做能在更新主题时,不会将自己辛苦配置的所有配置都覆盖掉
我们也吧/themes/anzhiyu/source下的img文件复制一份,放置于Prorise-blog/source/img
核心配置
默认拉取下来的主题还有一些 butterfly 官方的英文注释,所以我在这里给他全部都翻译成中文方便初始的覆盖(其中含有部分我的个人信息)
1 | # 菜单配置 |
第一章: 网站身份与核心导航
本章将引导您配置网站的基础身份信息、核心导航菜单以及其他关键入口,确保访问者能够识别您的网站并便捷地浏览内容。正确的配置不仅关乎网站的功能性,更是构建品牌形象的第一步。
菜单配置 (menu
)
主导航菜单是网站最重要的导航元素,通常位于页面顶部,引导用户访问核心页面和内容分类。
1 | # 菜单配置 |
配置指导
menu
下的每个条目代表一个菜单项。- 格式为
菜单名称: 链接 || 图标类名
。菜单名称
: 显示在菜单上的文本。链接
: 菜单项指向的 URL 路径(相对于网站根目录)。图标类名
: 可选,菜单项左侧显示的图标类名,使用||
分隔。请使用主题提供的anzhiyu-icon-*
类名,或直接使用Font Awesome的类名
3.标签页配置
1.前往你的 Hexo 博客的根目录
2.在 Hexo 博客根目录 [blog]
下打开终端,输入
1 | hexo new page tags |
你会找到 source/tags/index.md
这个文件
修改这个文件: 记得添加 type: "tags"
1 |
|
4.分类页配置
1.前往你的 Hexo 博客的根目录
2.在 Hexo 博客根目录 [blog]
下打开终端,输入
1 | hexo new page categories |
3.修改文件如下:
1 |
|
顶部导航栏 (nav
)
除了主菜单,Anzhiyu 主题还提供顶部的辅助导航栏或其他顶部元素配置。
1 | # 导航栏相关配置 (顶部导航栏) |
个性化方案推荐
- 简洁明了: 如果顶部导航栏用于显示网站标题或logo,确保其设计简洁,不干扰用户阅读内容。
- 滚动行为: 利用主题提供的滚动隐藏/显示或变色功能,优化移动端或长页面的用户体验。
网站图标 (favicon
)
网站图标(Favicon)是显示在浏览器标签页、书签栏和搜索结果中的小图标,是网站的重要标识。
1 | # Favicon(网站图标) |
头像 (avatar
)
头像通常代表网站作者或博主,在侧边栏或关于页面等位置显示。
1 | # Loading Animation (加载动画) |
个性化方案推荐
- 清晰照片: 使用清晰、高质量的个人照片作为头像,增加网站的亲和力,可以采用webp式的木偶动画作为动态头像
社交图标 (social
)
社交图标通常显示在侧边栏、页脚或关于页面,用于链接到作者的社交媒体主页,有需要的话可以配置
1 | social: |
个性化方案推荐
- 精选平台: 只列出您活跃且希望分享的社交平台。
- 常用在前: 将您最常用的社交平台放在列表前面,它们通常会优先显示。
第二章: 基础配置系列
本章将深入探讨安知鱼 (Anzhiyu) 主题中的基础配置,特别是核心的侧边栏配置(aside)以及影响文章列表和详情页显示的内容元素配置
2.1 代码块配置
1 | # Code Blocks (代码相关) |
在默认情况下,Hexo 在编译的时候不会实现代码自动换行。如果你不希望在代码块的区域里有横向滚动条的话,那么你可以考虑开启这个功能。
2.2 个人卡片
个人卡片hover后的显示描述,该描述请在侧边栏配置中的aside.card_author.description
中修改,支持html显示。
1 | # 作者卡片 状态 (侧边栏作者卡片上的个性签名/状态) |
2.3 侧边栏配置
侧边栏是博客网站常用的一种布局元素,用于展示作者信息、公告、最新文章、分类、标签等辅助内容。安知鱼主题提供了丰富的侧边栏模块(即内容卡片)供您选择和配置。
1 | aside: |
注意,要配置个人的作者姓名需要在hexo的
_config.yml_
内配置,如下的信息
1 | # --- 网站信息 (Site) --- |
**注意:**有关于名字的显示需要配置
social
配置项,若没有配置,则不会显示站点的名字!
1 | # social settings (社交图标设置) |
2.4 顶部图
如果不要显示顶部图,可直接配置 disable_top_img: true
当我们期望使用封面图时,可以对Markdown顶层做上如下的配置
1 |
|
系统会按以下顺序寻找图片,找到第一个就使用:
- 文章
.md
文件里的top_img
- 文章
.md
文件里的cover
- 主题
_config.yml
文件里的default_top_img
配置 | 解释 |
---|---|
index_img | 主页的 top_img,示例值: index_img: “background: url(https://img02.anheyu.com/xxx) top / cover no-repeat” |
default_top_img | 默认的 top_img,当页面的 top_img 没有配置时,会显示 default_top_img |
archive_img | 归档页面的 top_img |
tag_img | tag 子页面 的 默认 top_img |
tag_per_img | tag 子页面的 top_img,可配置每个 tag 的 top_img |
category_img | category 子页面 的 默认 top_img |
category_per_img | category 子页面的 top_img,可配置每个 category 的 top_img |
其它页面 (tags/categories/自建页面)和 文章页 的 top_img
,请到对应的 md 页面设置 front-matter
中的 top_img
注意:并不推荐为每个 tag 和每个 category 都配置不同的顶部图,因为配置太多会拖慢生成速度
2.5 文章置顶
【推荐】hexo-generator-index
从 2.0.0 开始,已经支持文章置顶功能。你可以直接在文章的 front-matter
区域里添加 sticky: 1
属性来把这篇文章置顶。数值越大,置顶的优先级越大。
2.6 文章封面
文章的 markdown 文档上,在 Front-matter
添加 cover
,并填上要显示的图片地址。
如果不配置 cover
,可以设置显示默认的 cover。
如果不想在首页显示 cover, 可以设置为 false。
文章封面的获取顺序 Front-matter
的 cover
> 配置文件的 default_cover
> false
1 |
|
在_config
配置文件中设置:
1 | cover: |
当配置多张图片时,会随机选择一张作为 cover.此时写法应为
1 | default_cover: |
2.7 文章 meta 显示
这个选项是用来显示文章的相关信息的。
1 | post_meta: |
2.8 文章版权
为你的博客文章展示文章版权和许可协议。
1 | post_copyright: |
由于 Hexo 4.1
开始,默认对网址进行解码,以至于如果是中文网址,会被解码,可设置 decode: true
来显示中文网址。
如果有文章(例如:转载文章)不需要显示版权,可以在文章 Front-matter
单独设置
1 | copyright: false |
支持对单独文章设置版权信息,可以在文章 Front-matter
单独设置
1 | # 【可选】文章版权模块的详细设置。 |
2.9 文章打赏
在你每篇文章的结尾,可以添加打赏按钮。相关二维码可以自行配置。
对于没有提供二维码的,可配置一张软件的 icon 图片,然后在 link 上添加相应的打赏链接。用户点击图片就会跳转到链接去。
link 可以不写,会默认为图片的链接。coinAudio 为投币的音频。
1 | # Sponsor/reward (赞赏/打赏) |
2.10 TOC
在文章页,会有一个目录,用于显示 TOC。修改 主题配置文件
1 | # toc (目录) |
为特定的文章配置
在你的文章 md 文件的头部,加入 toc_number 和 toc,并配置 true 或者 false 即可。
主题会优先判断文章 Markdown 的 Front-matter 是否有配置,如有,则以 Front-matter 的配置为准。否则,以主题配置文件中的配置为准
1 | # 【可选】TOC (Table of Contents) 目录的相关设置。 |
2.11 相关文章
当文章封面设置为 false
时,或者没有获取到封面配置,相关文章背景将会显示主题色、相关文章推荐的原理是根据文章 tags 的比重来推荐
1 | # Related Articles (相关文章) |
2.12 文章过期提醒
可设置是否显示文章过期提醒,以更新时间为基准。
1 | # Displays outdated notice for a post (文章过期提醒) |
2.13 文章编辑按钮
在文章标题旁边显示一个编辑按钮,点击会跳转到对应的链接去。
1 | # Post edit (文章编辑链接) |
2.14 文章分页按钮
当文章封面设置为 false
时,或者没有获取到封面配置,分页背景将会显示主题色。
可设置分页的逻辑,也可以关闭分页显示
1 | # post_pagination (文章分页导航) |
第三章: 文章与页面深度配置
本章将深入探讨 Anzhiyu 主题中 页面的深度配置以及额外配置
3.1 Footer 设置
1 | # Footer Settings (页脚设置) |
3.2 访问人数
访问 busuanzi 的官方网站查看更多的介绍
1 | # busuanzi count for PV / UV in site (不蒜子统计,用于站点访客数/访问量) |
如果需要修改 busuanzi 的 CDN 链接,可通过 主题配置文件 的 CDN 中的 option 进行修改
1 | CDN: |
3.3 右下角按钮
简体繁体互换
1 | # 右下角按钮 |
阅读模式
阅读模式下会去掉除文章外的内容,避免干扰阅读。
只会出现在文章页面,右下角会有阅读模式按钮。
1 | # Read Mode (阅读模式) |
夜间模式
右下角会有夜间模式按钮
1 | # dark mode (暗色模式) |
3.4 页面加载动画
当进入网页时,因为加载速度的问题,可能会导致 top_img 图片出现断层显示,或者网页加载不全而出现等待时间,开启preloader后,会显示加载动画,等页面加载完,加载动画会消失。
主题支持 pace.js 的加载动画,具体可查看 pace.js
1 |
|
3.5 Inject(重点)
您可以把 inject
特性想象成一个**“官方指定的外挂接口”**。
它的核心作用是:允许您在不修改主题核心模板文件的前提下,安全、干净地向网站的所有页面中“注入”您自己的代码(通常是 <link>
标签来引入CSS,或 <script>
标签来引入JS)。
inject.head
: 将代码注入到每个HTML页面的</head>
标签之前。最适合放自定义CSS、第三方字体、网站验证的meta
标签等。inject.bottom
: 将代码注入到每个HTML页面的</body>
标签之前。最适合放需要最后加载的JS脚本,比如网站统计、特效JS等。
1 | inject: |
使用它的最大好处是:当您的主题更新时,您不必担心自己修改过的模板文件被覆盖,因为您的所有自定义代码都集中在 _config.yml
这个配置文件里,升级主题时更加轻松,在后面我们可能会用到这个配置项,我们先简单了解一下
第四章: 插件与第三方服务集成
本章将详细指导您如何在安知鱼 (Anzhiyu) Hexo 主题中集成各种常用的第三方服务和插件,包括搜索、评论、网站统计、内容分享以及在线聊天功能。通过合理的配置,您可以极大地增强博客的互动性、可发现性和用户体验。所有相关配置都位于您的主题配置文件 _config.anzhiyu.yml
中。
搜索系统
为您的博客添加搜索功能是提升用户体验的关键。访问者可以通过搜索快速找到他们感兴趣的内容。Anzhiyu 主题支持多种搜索方案。用最直接的方式来对比这三者。
特性 | 本地搜索 (Local Search) | Algolia (标准版) | DocSearch |
---|---|---|---|
工作地点 | 在访客的浏览器里 | 在云端服务器上 | 在云端服务器上 |
性能体验 | 文章多会卡顿,功能基础 | 速度极快,功能强大、智能 | 速度极快,功能强大、智能 |
设置难度 | 简单,装个插件就行 | 复杂,需注册和配置API | 中等,需要提交申请并等待审核 |
费用 | 完全免费 | 有免费额度,超出后付费 | 对符合条件的网站完全免费 |
最适合谁 | 个人博客,中小型网站 | 对搜索要求高的大型、商业网站 | 开源项目文档,技术教程博客 |
- 想省事、刚起步 → 用 本地搜索。
- 追求极致体验、不差钱或流量很大 → 用 Algolia。
- 是公开的技术/开源文档网站 → 申请 DocSearch (如果能通过,这是最佳选择)。
1 | # search (搜索) |
Hexo 配置 Algolia 搜索完整流程
我们以配置Algolia 为例子,他是最通用且最强大的搜索插件
这个流程主要分为四个阶段:
- 准备 Algolia 账号:获取必要的“钥匙”(API Keys)。
- 配置 Hexo 插件:在您的本地博客项目中安装并设置“同步工具”。
- 上传文章数据:将您的博客内容“同步”到 Algolia 的云端。
- 配置 Hexo 主题:让您网站前端的搜索框“连接”到 Algolia。
[1] 注册 Algolia 账号
前往 Algolia 官网 并注册一个账号。它提供一个永久免费的 Build
套餐,对于绝大多数个人博客来说完全够用。
点击官网Product / Serach,创建一个新索引
跳过所有选项,获取API Keys
Application ID: 您的应用唯一ID。
Search-Only API Key: 只读搜索密钥。这个是公开的,会用在您网站的前端,只能用来搜索,不能修改数据。
Write API Key: 管理员密钥。这个是私密的,绝对不能泄露!它拥有最高权限,我们用它来向 Algolia 上传和更新文章数据。
[2] 在本地 Hexo 项目中安装和配置插件
1 | npm install hexo-algoliasearch --save |
打开您博客根目录下的 _config.yml
文件,在文件的最底部添加以下配置:
1 | # --- Algolia Search (Final Configuration for AnZhiYu Theme) --- |
再次警告:这里的 apiKey
使用的是 Write API Key**,这个配置文件不应该**上传到公开的 GitHub 仓库,否则会泄露您的密钥。
[3] 上传索引(将文章同步到 Algolia)
1 | hexo algolia |
这个命令会启动 hexo-algoliasearch
插件,它会读取您所有的文章,然后使用您在第二阶段配置的 WriteKey 将它们推送到 Algolia 云端的指定 Index 中。
[4] 配置 主题文件 _config.anzhiyu.yml
1 | # Algolia search (Algolia 搜索) |
注意:我们需要配置博客根目录
_config.yml
文件中url
字段的默认值,否则Algolia的默认跳转连接是hexo默认定义的url
1 | # --- 网址 (URL) --- |
[5] 日常使用
- 最终验证
- 在终端中运行
hexo clean && hexo s
重启您的本地服务。 - 打开
localhost:4000
,点击网站的搜索按钮。 - 此时弹出的应该就是 Algolia 的搜索框(通常会有 Algolia 的小图标)。随便输入您文章中的一个词,结果应该会瞬间出现。
- 在终端中运行
- 日常更新流程
- 当您写了一篇新文章或修改了旧文章后,您的工作流会比以前多一步:
- 正常写文章。
hexo g -d
(生成并部署您的网站)hexo algolia
(运行此命令来更新 Algolia 的搜索索引)
- 当您写了一篇新文章或修改了旧文章后,您的工作流会比以前多一步:
恭喜您!至此,您的博客已经拥有了世界一流的搜索引擎。
评论系统
评论系统是博客互动性的重要组成部分,Anzhiyu 主题集成了多种流行的评论服务。
三种评论系统对比
特性 | Waline | Twikoo | Valine (旧版) |
---|---|---|---|
管理后台 | ✅ 有 (功能强大的独立管理界面) | ✅ 有 (功能强大的独立管理界面) | ❌ 无 (核心痛点) |
后端依赖 | Vercel / Netlify / Railway 等云平台 | 腾讯云开发 (Tencent CloudBase) | LeanCloud |
功能丰富度 | 非常高 (评论/阅读数/通知/表情等) | 非常高 (功能与Waline基本一致) | 基础 (只有基础评论和阅读数) |
项目维护状态 | 活跃 (持续更新) | 活跃 (持续更新) | 基本停滞 (不推荐) |
部署难度 | 中等 (需部署后端,但有“一键部署”) | 中等 (需配置云开发环境) | 简单 (但平台限制增多) |
推荐指数 | ⭐⭐⭐⭐⭐ (强烈推荐) | ⭐⭐⭐⭐ (优秀备选) | ⭐ (不推荐) |
1 | # Comments System (评论系统) |
关于双评论功能
- 含义:这是主题提供的高级功能,允许在一个页面上配置并提供两个不同的评论系统(例如 Waline 和 Twikoo)供访客切换。
- 用途:主要用于照顾不同地区访客的访问速度(例如 Vercel 在海外快,腾讯云在国内快),或满足不同用户的登录偏好。
- 配置方法:在
use
字段中填写两个系统的名字即可,第一个为默认显示。例如:use: Waline, Twikoo
- 建议:初期无需配置,先专注于一个系统即可。
部署Waline
核心流程概览
部署 Waline 需要一个独立的后端服务来存储和管理评论。我们将分为四个阶段完成:
- 准备数据库:创建一个云数据库用于存储评论信息(以LeanCloud为例)。
- 部署后端服务:在 Vercel 平台上一键部署 Waline 后端。
- 绑定自定义域名 (推荐):解决网络访问问题。
- 配置Hexo主题:让您的博客与后端服务连接起来。
创建云数据库 (以 LeanCloud 为例)
- 登录或注册 LeanCloud 国际版并进入控制台:
https://console.leancloud.app/login?from=%2Fapps
- 点击左上角“创建应用”,选择免费的开发版并为应用命名。
3.进入应用后,在左侧菜单选择 设置 > 应用 Key。您会看到 APP ID
, APP Key
和 Master Key
。请将这三个值复制并保存好,下一步会立刻用到。
第一阶段:在 Vercel 上一键部署 Waline 后端
前提准备:一个 GitHub 账号和一个 Vercel 账号。
点击官方部署模板链接:
➡️ 部署链接在 Vercel 中创建项目:点击链接后,Vercel 会引导您创建一个新的 Git 仓库。给仓库起一个您喜欢的名字(例如
my-waline-server
),然后点击 Create。配置环境变量 (Environment Variables):在接下来的页面中,根据第一步中从 LeanCloud 获取到的信息,依次添加以下三个环境变量:
LEAN_ID
(值为您的 APP ID)LEAN_KEY
(值为您的 APP Key)LEAN_MASTER_KEY
(值为您的 Master Key)
部署:配置好环境变量后,点击 Deploy 按钮,等待部署成功,部署成功后他会需求重启,照做即可
第二阶段:绑定自定义域名 (强烈推荐)
您可能会发现,刚刚部署好的 .vercel.app
地址在某些网络环境下无法直接访问(需要“梯子”)。这是因为该域名受到了网络干扰。最佳解决方案是为您的 Waline 服务绑定一个您自己的域名。
在 Vercel 获取配置信息:
- 进入您刚部署好的 Vercel 项目,点击 Settings -> Domains。
- 输入您想用的域名(例如
waline.prorise666.site
或根域名prorise666.site(不建议)
),点击 Add。 - Vercel 会提示您需要添加的DNS记录,通常是
A
记录(对应一个IP地址)或CNAME
记录(对应另一个地址)。
在您的域名服务商(如Spaceship)处添加记录:
- 登录您的域名服务商后台,找到DNS管理页面。
- 按照 Vercel 的提示,添加对应的
A
或CNAME
记录。- 类型(Type):
A
或CNAME
- 主机(Host/Name): 如果是根域名,填
@
;如果是子域名(如waline
),则填waline
。 - 值(Value): 粘贴从 Vercel 获取的 IP 地址或地址。
- 类型(Type):
- 保存记录。
等待并验证:
- DNS 生效需要几分钟到几小时。您可以稍后回到 Vercel 的 Domains 页面,点击 Refresh Status。当红色提示消失,变为绿色成功状态时,即代表绑定成功。
- 绑定成功后的这个自定义域名,才是我们最终要用的
serverURL
。
第三阶段:首次配置 Waline 后端
- 访问管理界面:在浏览器中打开
https://<您的自定义域名>/ui/register
。 - 注册管理员:设置您的用户名和密码并完成注册。这个账号用于管理所有评论。
第四阶段:配置您的 Hexo 主题
- 打开主题配置文件 (
themes/anzhiyu/_config.yml
)。 - 填写
comments
和waline
配置:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22comments:
# 最多可配置两个评论系统,第一个将作为默认显示
# Choose: Valine/Waline/Twikoo/Artalk (可选择的评论系统)
use: Waline # Twikoo/Waline # 配置使用的评论系统名称 (例如 ['Twikoo', 'Waline'])
text: true # 是否在评论按钮旁边显示评论系统的名称
# 如果启用懒加载,评论计数可能不准确
lazyload: false # 是否启用评论系统懒加载
count: true # 是否在文章顶部图片中显示评论计数
card_post_count: true # 是否在首页文章列表卡片中显示评论计数
# waline - A simple comment system with backend support fork from Valine (Waline 评论系统)
# https://waline.js.org/
waline:
serverURL: https://waline.prorise666.site # Waline 后端服务地址 URL
bg: # Waline 评论框背景图片
pageview: true # 是否启用文章阅读量统计 (基于 Waline)
meta_css: true # 是否引入 waline-meta.css, 以便显示 meta 图标
imageUploader: true # 是否启用图片上传功能。配置为 > 换行后可自定义图片上传逻辑,示例: https://waline.js.org/cookbook/customize/upload-image.html#案例
# 以下为可选配置,后续若有新增/修改配置参数可在此自行添加/修改
option: # 其他可选配置项 - 本地预览与最终验证:
- 在终端运行
hexo clean && hexo s
。 - 打开文章页,检查评论框是否正常显示并可以成功提交评论。
- 在终端运行
部署 Twikoo 系统。
这篇文章主要介绍一下免费的方案 —— 使用 Vercel 部署 Twikoo 系统。如果您希望部署 Twikoo 系统以使用评论弹幕等高级功能,但不想再注册新的数据库服务,而是希望利用现有的 LeanCloud 账户。
这里需要澄清一个关键点:Twikoo 官方提供给 Vercel 的“一键部署”方案是为 MongoDB 数据库定制的,它通过读取一个名为 MONGODB_URI
的环境变量来连接数据库。它无法直接识别 LeanCloud 的 APP_ID
和 APP_KEY
。
因此,最稳定、最推荐的免费部署方案仍然是 Vercel + MongoDB Atlas。MongoDB Atlas 同样提供永久免费的数据库额度,足够个人博客使用。注册流程也非常快速。
此流程将指导您使用 Vercel (提供免费后端服务) 和 MongoDB Atlas (提供免费数据库) 来部署 Twikoo 评论系统。这是目前最稳定且官方推荐的免费部署方案。
核心流程概览
- 准备数据库 (MongoDB Atlas):创建一个免费的云数据库用于存储 Twikoo 评论。
- 部署后端服务 (Vercel):在 Vercel 平台上一键部署 Twikoo 后端服务。
- 配置 Hexo 主题:让您的博客与 Twikoo 后端服务连接起来。
第一阶段:准备数据库 (MongoDB Atlas)
尽管您已有 LeanCloud 账户,但 Twikoo 的 Vercel 部署方案需要使用 MongoDB。请放心,注册和创建免费数据库的过程非常快捷。
注册并创建免费数据库
- 访问 MongoDB Atlas 官网 并注册一个新账号。
- 登录后,系统会引导您创建项目。然后点击 “Build a Database” 按钮。
- 选择免费的 M0 FREE 套餐,选择一个云服务商和离您较近的地区(例如 AWS 的
ap-northeast-1
东京或ap-east-1
香港),然后点击 “Create”。
创建数据库用户
- 在数据库的安全设置(Security)页面,找到 “Database Access” 选项卡。
- 点击 “Add New Database User”,设置一个用户名和密码。请务必记下这两个值,稍后会用到。
- 点击 “Create Database User” 完成创建。
配置网络访问权限
- 在安全设置(Security)页面,找到 “Network Access” 选项卡。
- 点击 “Add IP Address”。
- 在弹出的窗口中,点击 “ALLOW ACCESS FROM ANYWHERE” (允许任何 IP 地址访问)。这会自动填入
0.0.0.0/0
。 - 点击 “Confirm”。由于 Vercel 的服务器 IP 是动态的,这样设置可以确保 Twikoo 服务能正常连接到数据库。
获取数据库连接字符串 (Connection String)
- 回到 “Database” 概览页面,找到您创建的集群,点击 “Connect” 按钮。
- 在连接方式中,选择 “Drivers”。
- 页面上会显示一个连接字符串,格式如下:
mongodb+srv://<username>:<password>@cluster0.xxxx.mongodb.net/?retryWrites=true&w=majority
- 请将
<username>
和<password>
替换为您在第2步中创建的真实用户名和密码。
- 将这个完整的字符串复制并妥善保存,这是连接您数据库的唯一凭证,下一步将立即用到,连接字符串包含了连接到 MongoDB 数据库的所有信息,一旦泄露会导致评论被任何人添加、修改、删除,并有可能获取你的 SMTP、图床 token 等信息。请妥善记录这一字符串,之后需要填入到 Twikoo 的部署平台里。
第二阶段:在 Vercel 上一键部署 Twikoo 后端
点击官方部署模板链接:
➡️ Twikoo 部署链接在 Vercel 中创建项目
- 点击链接后,Vercel 会引导您基于此模板创建一个新的 Git 仓库。给仓库起一个您喜欢的名字 (例如
my-twikoo-service
),然后点击 Create。
- 点击链接后,Vercel 会引导您基于此模板创建一个新的 Git 仓库。给仓库起一个您喜欢的名字 (例如
配置环境变量 (关键步骤)
- 在接下来的 “Configure Project” 页面中,展开 Environment Variables (环境变量) 部分。
- 添加一个名为
MONGODB_URI
的环境变量。 - 它的值 (Value) 就是您在 第一阶段第4步 中获取并保存好的数据库连接字符串。
部署与验证
- 配置好环境变量后,点击 Deploy 按钮,并耐心等待部署完成。
- 部署成功后,进入您项目的 Vercel 控制台,点击顶部菜单的 Deployments。
- 找到刚刚完成的部署项,点击右侧的“三个点”菜单,选择 Redeploy (重新部署),并确认。这一步是为了确保环境变量能被正确应用。
- 等待重新部署完成后,回到项目概览 (Overview) 页面。在 Domains 下方会有一个
.vercel.app
结尾的链接。 - 点击这个链接,如果页面显示 “Twikoo 云函数运行正常” 的提示,则代表您的 Twikoo 后端已成功部署!
- 这个完整的 Vercel 链接 (例如
https://twikoo-service.vercel.app
) 就是我们最终需要的envId
(环境ID)。
第三阶段:配置您的 Hexo 主题
打开主题配置文件 (
themes/anzhiyu/_config.yml
)。启用 Twikoo 评论系统:
- 找到
comments
配置项,在use
字段中填入Twikoo
。如果您想保留 Waline 作为备用选项,可以配置为use: Twikoo, Waline
,将默认想用的系统放在第一位。
1
2
3
4
5
6
7comments:
# 在此配置要使用的评论系统,第一个为默认
use: Twikoo
text: true
lazyload: false
count: true
card_post_count: true- 找到
填写 Twikoo 配置:
- 找到
twikoo
配置项,将envId
填写为您在 第二阶段第4步 获得的 Vercel 域名。
1
2
3
4
5
6
7# Twikoo - A simple, safe, free comment system.
# https://twikoo.js.org/
twikoo:
envId: 'https://my-twikoo-service.vercel.app' # 必填,您的 Vercel 部署地址
region: # Vercel 部署无需填写
# visitor: true # 开启访客统计,如需使用请设置为 true
# ... 其他Twikoo配置项- 找到
本地预览与最终验证:
- 在终端运行
hexo clean && hexo s
。 - 打开任意一篇文章页,您应该能看到 Twikoo 评论框已正常加载。
- 点击评论框右下角的小齿轮图标,即可进入管理后台,首次进入需要设置管理员密码。
- 现在,您已经可以根据之前的笔记,继续配置评论弹幕等功能了。
- 在终端运行
配置最新评论
最新评论只会在刷新时才会去读取,并不会实时变化。由于 API 有访问次数限制,为了避免调用太多,主题默认存取期限为 10 分钟。也就是説,调用后资料会存在 localStorage 里,10 分钟内刷新网站只会去 localStorage 读取资料。 10 分钟期限一过,刷新页面时才会去调取 API 读取新的数据。(通过配置 storage
,可自行配置缓存时间)
1 | # Console - Newest Comments (控制台 - 最新评论) |
分享功能 (Sharing)
在文章页面添加分享按钮,可以让读者方便地将您的内容分享到社交媒体或通过其他渠道传播,增加文章的曝光度。Anzhiyu 主题支持集成不同的分享服务。
两种分享服务对比总结
特性 | Share.js | AddToAny |
---|---|---|
核心特点 | 一个轻量化的JS分享插件 | 一个“全能型”的分享服务 |
主要面向地区 | 中国大陆常用平台 (QQ/微博等) | 全球/国际平台 (Facebook/Twitter等) |
按钮自定义 | 灵活,可自由增删列表中的平台 | 相对固定,主要通过“+”号扩展 |
优点 | 轻量,对国内平台支持非常直接 | 支持的服务极多,覆盖面非常广 |
缺点 | 国际平台支持相对较少 | 国内常用平台通常被折叠,不够方便 |
选择建议
选择哪个,完全取决于您博客的目标读者在哪里。
鉴于您是中文博客,目标读者很可能主要在国内,因此我强烈推荐您使用【Share.js】。
它的默认列表就是为国内用户量身定做的,包含了微信、QQ、微博等最常用的平台,非常方便。而 AddToAny 更适合面向国际读者的英文博客。
Share.js 配置流程
您不需要去任何网站注册,只需要在主题配置文件中进行设置即可。
打开您的主题配置文件 (例如
themes/anzhiyu/_config.yml
)。找到
share:
部分,并按照下面的示例进行修改。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30# Sharing Services (分享功能)
# --------------------------------------
share:
# 这是分享功能的总开关
enable: true
# --- Share.js 分享服务 ---
# 我们选择启用这个
sharejs:
enable: true
# 在这里配置您想要显示的分享平台列表
# 您可以根据自己的喜好,从下面的列表中删除您不想要的平台,或者调整它们的顺序。
platforms:
- wechat # 微信
- qq # QQ好友
- qzone # QQ空间
- weibo # 新浪微博
- douban # 豆瓣
- email # 通过邮件分享
# --- 以下为国际平台,如果您的读者有海外用户,可以取消注释来启用 ---
# - facebook
# - twitter
# - linkedin
# - google
# --- AddToAny 分享服务 ---
# 确保这个是禁用的,避免冲突
addtoany:
enable: false保存文件。
重启本地服务:在终端运行
hexo clean && hexo s
。
完成以上步骤后,在您的每篇文章下方,应该就能看到一排分享按钮了,例如“分享到微信”、“分享到QQ”等。
1 | ### Sharing |
聊天服务
在线聊天或客服功能可以方便访问者与您进行实时交流或留言。Anzhiyu 主题支持集成一些第三方聊天服务。
各类在线聊天服务快速对比总结
服务名称 | 核心特点 | 主要面向的用户 | 推荐指数 |
---|---|---|---|
Tidio | 界面现代,功能全面,免费套餐慷慨 | 全球/通用,追求良好UI和体验的用户 | ⭐⭐⭐⭐⭐ |
Crisp | 设计简洁优雅,体验流畅 | 全球/通用,Tidio的优秀替代品 | ⭐⭐⭐⭐ |
DaoVoice (客服宝) | 针对国内市场优化,访问速度快 | 访客主要来自中国大陆的博主 | ⭐⭐⭐⭐ |
Chatra | 功能扎实,老牌聊天服务商 | 全球/通用 | ⭐⭐⭐ |
选择建议
选择哪个,主要取决于您的访客群体和个人偏好。
- 如果您的访客遍布全球,或者您特别喜欢现代化的界面和强大的免费功能:
- 首选推荐:Tidio。它的免费版足以满足个人博客的一切需求,并且后台和App都非常好用。
在开始之前,有一个极其重要的前提:
您不能同时启用多个聊天服务,一次只能选择一个来激活。
下面的流程会教您如何配置每一个,但请记住,当您启用一个时(例如 tidio.enable: true
),必须确保其他所有服务的 enable
都设置为 false
,以免造成页面冲突和加载错误,我们还是以一个最强大的为例子,但他可能会与其他的部署流程更复杂一些,由于anzhiyu主题已经两年未更新,但Tidio的引入方式进行了大改,所以我们需要手动集成
部署流程:Tidio
服务简介:功能全面,界面现代化,免费套餐非常慷慨,是个人博客的绝佳选择。
部署流程:
- 第一步:前往 Tidio 官网 注册一个免费账号。
- 第二步:根据设置向导,输入您的网站地址、配置聊天窗口的颜色和语言(支持中文)等。
- 第三步:完成向导后,进入 Tidio 管理后台。点击左下角的设置图标 (⚙️ Settings)。
- 第四步:在菜单中选择,并如图中所示操作,将整个代码片段复制下来:
主题配置:
1 | # tidio (Tidio 聊天服务) |
部署流程:Crisp
- 服务简介:设计简洁优雅,体验流畅,是 Tidio 的一个强力竞争者,同样提供不错的免费套餐。
- 部署流程:
- 第一步:前往 Crisp 官网 注册账号。
- 第二步:登录后,进入后台。点击左侧菜单的设置图标 (⚙️),然后选择 Website Settings。
- 第三步:在网站列表中,点击您网站旁边的 Settings 按钮。
- 第四步:选择 Setup Instructions 或类似选项,您会看到一段JS代码。
- 第五步:从代码
CRISP_WEBSITE_ID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
中,复制引号里的那串 Website ID。
- 主题配置:
1
2
3
4
5
6crisp:
enable: true # <-- 启用 Crisp
website_id: '您的 Crisp Website ID' # <--- 粘贴到这里
# --- 确保其他聊天服务为 false ---
# ...
部署流程:DaoVoice (客服宝)
- 服务简介:专注于国内市场的在线客服工具,如果您的访客主要来自中国大陆,它的连接速度和稳定性可能更有优势。
- 部署流程:
- 第一步:前往 DaoVoice 官网 并注册账号。
- 第二步:登录后台后,根据系统的引导提示安装应用或添加网站。
- 第三步:在安装步骤或应用设置中,您会找到一串专属的 App ID。请复制它。
- 主题配置:
1
2
3
4
5
6daovoice:
enable: true # <-- 启用 DaoVoice
app_id: '您的 DaoVoice App ID' # <--- 粘贴到这里
# --- 确保其他聊天服务为 false ---
# ...
部署流程:Chatra
- 服务简介:一款功能扎实、成熟可靠的聊天服务。
- 部署流程:
- 第一步:前往 Chatra 官网 注册账号。
- 第二步:登录后,在左侧菜单进入 Settings > Chat Widget。
- 第三步:页面上会有一段JS安装代码。
- 第四步:从代码中找到您的 Public key 或 ID (通常是一串10位左右的字母数字组合)。
- 主题配置:
1
2
3
4
5
6chatra:
enable: true # <-- 启用 Chatra
id: '您的 Chatra Public key' # <--- 粘贴到这里
# --- 确保其他聊天服务为 false ---
# ...
AI 摘要功能
该功能可以在文章顶部生成一段精炼的摘要,帮助读者快速了解文章核心内容。它提供两种模式:tianli
(调用云端AI自动生成) 和 local
(在文章中手动撰写)。
两种模式对比
模式 | 工作方式 | 优点 | 缺点 |
---|---|---|---|
tianli | 调用云端AI服务,自动分析文章并生成摘要 | 方便快捷,摘要质量高,无需动脑 | 付费服务,有请求字数限制 |
local | 在文章的 Front-matter 中手动撰写多条摘要 | 完全免费,内容可控,可精准表达 | 需要为每篇文章手动编写,较为繁琐 |
下面,我将为您分别提供这两种模式的详细集成流程。
方案一:集成 Tianli GPT (自动摘要模式)
此方案适合追求效率,希望自动为所有文章生成高质量摘要的用户,但是需要一点小钱
1 | npm install hexo-plugin-postchat --save |
编辑根目录下的_config.yaml
,在plugins
中添加hexo-plugin-postchat
:
1 | plugins: |
1. 第一步:获取 Key 与绑定域名
- 访问 前端管理面板,将您的 Key 与您博客的域名(即
Referer
)进行绑定,以防被盗用,并需要购买token以及新建项目,获取key
2. 第二步:配置主题文件
- 打开您主题的配置文件 (
themes/anzhiyu/_config.yml
)。 - 找到
post_head_ai_description:
部分,并修改如下:1
2
3
4
5
6
7
8
9post_head_ai_description:
enable: true
mode: tianli # <--- 必须设为 tianli
key: '您购买的Key' # <--- 粘贴您的Key
Referer: 'https://您的博客域名.com/' # <--- 填写您绑定的博客地址
gptName: AnZhiYu # AI的名字,可自定义
switchBtn: false # 是否显示切换模式的按钮,推荐false
randomNum: 3
basicWordCount: 1000
3. 第三步:在文章中启用
- (此步骤将在文末统一说明)
方案二:使用 Local 模式 (手动摘要模式)
此方案完全免费,适合希望完全掌控摘要内容,或者只是想为少数几篇文章添加摘要的用户。
1. 第一步:配置主题文件
- 打开您主题的配置文件 (
themes/anzhiyu/_config.yml
)。 - 找到
post_head_ai_description:
部分,并修改如下:1
2
3
4
5
6
7
8post_head_ai_description:
enable: true
mode: local # <--- 必须设为 local
gptName: Prorise # AI的名字,可自定义
# 以下三项在local模式下无需填写
key:
Referer:
btnLink:
2. 第二步:在文章中撰写摘要
打开您想添加摘要的文章 .md 文件。
在文章最顶部的 Front-matter 区域,添加一个
ai:
字段,并以列表的形式提供一或多条您自己撰写的摘要。主题会从您提供的列表中随机选择一条进行显示。
示例:
1
2
3
4
5
6
7
8
9
10
title: AnZhiYu主题快速开始
date: 2025-06-12 01:00:00
ai:
- 本教程介绍了如何在博客中安装安知鱼主题,并提供了安装、应用主题等详细步骤。
- 如果你是Hexo新手,本文将一步步带你从零开始配置安知鱼主题。
- 本文的核心是帮助用户快速上手AnZhiYu主题,避免常见的配置错误。
文章正文从这里开始...
最后一步:在文章中启用AI摘要
无论您选择哪种模式,默认情况下摘要功能并不会对所有文章生效。您需要在使用它的文章的 Front-matter 中明确开启它。
对于
tianli
模式:- 在文章的 Front-matter 中添加
ai: true
。
1
2
3
4
5
title: 我的文章标题
date: 2025-06-12 02:00:00
ai: true # <--- 像这样开启 Tianli 自动摘要- 在文章的 Front-matter 中添加
对于
local
模式:- 如上文所述,直接在 Front-matter 中提供
ai:
的摘要列表即可,无需额外的ai: true
。
- 如上文所述,直接在 Front-matter 中提供
配置完成后,hexo clean && hexo s
重启服务,找到您开启了此功能的文章,即可在文章顶部看到效果。
TODO:谷歌广告、站长验证、友链朋友圈、图片主色调API
网站统计
anzhiyu提供了许多网站统计的集成,我们都可以通过快速搭建服务去配置他们,以下的服务我们其实不着急集成,由于网页还未正式部署上线
首先,这是五种常用统计服务的快速对比总结表:
服务名称 | 核心功能 | 一句话建议 | 设置难度 |
---|---|---|---|
不蒜子 (Busuanzi) | 简单的访客/浏览量计数器 | 推荐所有新博主,提供即时反馈,增强动力。 | ⭐ (极简单) |
Google Analytics | 专业、全面的网站数据分析 | 强烈推荐,了解访客来源和内容表现的核心工具。 | ⭐⭐⭐ (中等) |
Microsoft Clarity | 用户行为可视化(热力图、录屏) | 推荐进阶使用,用于优化网站布局和用户体验。 | ⭐⭐⭐ (中等) |
百度统计 (Baidu) | 面向中国大陆市场的专业分析 | 仅当访客主要来自中国大陆时有必要使用。 | ⭐⭐⭐ (中等) |
CNZZ (友盟) | 同百度统计,面向国内市场 | 基本同上,与百度统计二选一即可。 | ⭐⭐⭐ (中等) |
我的最终建议组合:
- 基础必备:不蒜子 + Google Analytics
- 进阶优化:不蒜子 + Google Analytics + Microsoft Clarity
下面,我们来逐一介绍每个服务的部署流程。
不蒜子 (Busuanzi) 统计
它是什么?
一个极其简单、轻量的计数器,只显示网站总访客数(UV)和总浏览量(PV),给您最直观的反馈。
我应该用它吗?
强烈推荐。设置极其简单,能立刻看到成果,可以和任何其他分析工具并存。
部署流程
无需注册:这是它最大的优点。
打开主题开关:在您主题的配置文件中,找到
busuanzi:
部分,将enable
设置为true
即可。1
2busuanzi:
enable: true完成:主题会自动处理脚本的引入和数据显示。
Google Analytics (谷歌分析)
它是什么?
Google出品的、全球最专业、最强大的免费网站数据分析工具,是行业标准。能详细分析访客来源、热门文章、停留时间等一切您想知道的数据。
我应该用它吗?
强烈推荐。如果您想认真运营博客,这是必不可少的核心工具。
部署流程
准备账号:您需要一个 Google 账号。
访问官网:前往 [Google Analytics 官网](Google Analytics)。
创建账号与媒体资源:
- 首次使用会引导您创建新“账号 (Account)”。
- 接着创建“媒体资源 (Property)”,输入博客名,选择地区(Japan)和货币(JPY)。
创建数据流 (Data Stream):
- 在设置向导中,选择平台 “网站” (Web)。
- 输入您博客的最终线上网址(例如
https://yourname.github.io
)。
获取衡量ID (Measurement ID):
- 创建成功后,在数据流详情页的右上角,找到并复制一个格式为
G-XXXXXXXXXX
的“衡量ID”。
- 创建成功后,在数据流详情页的右上角,找到并复制一个格式为
配置您的主题文件:
- 打开主题配置文件,找到
google_analytics:
部分。 - 将
enable
设为true
,并将您的ID粘贴到tracking_id
。
1
2
3google_analytics:
enable: true
tracking_id: 'G-XXXXXXXXXX' # <--- 粘贴到这里- 打开主题配置文件,找到
完成:保存并重新部署博客。数据通常需要24-48小时才会开始在GA后台显示。
Microsoft Clarity
它是什么?
微软出品的免费用户行为分析工具,是GA的完美补充。它不侧重于数据,而是侧重于可视化,核心功能是热力图(看用户常点哪里)和会话录制(像看电影一样看用户的操作录像)。
我应该用它吗?
推荐。当您想知道“为什么访客没有点击这个按钮”或想优化文章排版时,它非常有用。
部署流程
- 准备账号:一个微软账号(或用Google账号登录)。
- 访问官网:前往 Microsoft Clarity 官网。
- 创建新项目:点击“New project”,输入您博客的名字和网址。
- 获取项目ID (Project ID):创建后,在安装步骤中选择“手动安装 (Install manually)”,您会看到一段代码,从中复制出您的 Project ID(一长串字母数字)。
- 配置您的主题文件:
1
2
3microsoft_clarity:
enable: true
project_id: '您的Clarity Project ID' # <--- 粘贴到这里
百度统计 / CNZZ 统计
它们是什么?
分别由百度和阿里巴巴(友盟+)推出的网站统计分析工具,可以看作是中国大陆地区的“Google Analytics”。
我应该用它吗?
仅当您的核心读者群体来自中国大陆时,才有必要配置。如果您想优化在百度搜索引擎中的表现,百度统计会更有帮助。
部署流程
流程与Google Analytics类似:前往各自官网注册 -> 添加网站 -> 在后台生成的跟踪代码中找到 Site ID -> 填入主题配置中对应的 tracking_id
或 site_id
字段并启用。
网站统计帮助您了解网站的访问量、访客来源、受访页面等信息,是优化网站内容和推广策略的重要依据。Anzhiyu 主题支持集成多种统计服务。
1 | ### Analytics Services (这些配置可能分散在 _config.anzhiyu.yml 中不同的区域) |
第五章: 外观、多页面集成
本章将深入探讨安知鱼 (Anzhiyu) 主题在网站外观、视觉特效及性能优化方面的各项配置。通过调整这些设置,您可以自定义网站的色彩风格、添加动态效果,并采取措施提升网站的加载速度和用户体验。所有相关配置均位于您的主题配置文件 _config.anzhiyu.yml
中。
主题颜色与美化
本节介绍如何自定义网站的主题色调、文本选择颜色、代码块颜色等基础视觉元素,以及其他通用美化设置。
1 | # Theme color for customize (自定义主题颜色) |
个性化方案推荐
- 品牌色一致: 将
main_color
设置为您博客 Logo 或品牌色调一致的颜色,增强品牌识别度。 - 阅读舒适度:
text_selection
选择一个对比度适中但不刺眼的颜色,例如柔和的黄色或浅蓝色,提升阅读体验。 - 风格选择: 根据您的网站风格决定是否启用
beautify
中的阴影和圆角效果。阴影可以增加元素的立体感,圆角使界面更柔和。偏向扁平化设计可以禁用这些效果。 - 有趣的分割线: 为分割线添加一个有趣或与文章内容相关的图标 (
hr_icon
),可以为页面增添一丝活力。例如,技术文章用代码图标,随笔用笔尖图标。
背景与特效
安知鱼主题提供了多种动态背景和鼠标特效,可以为您的网站增添活力和趣味性。请注意,启用特效可能会增加页面的加载时间和资源消耗,影响性能。建议按需选择,避免同时开启过多特效。
1 | # Background effects (背景特效) |
友情链接配置
本指南将引导您为 AnZhiYu 主题创建一个专属的、具有丰富样式的友情链接页面。该页面通常被称为“友人帐”。
核心流程概览
- 创建页面文件:通过Hexo命令生成友情链接页面的基础文件。
- 添加友链数据:在指定的数据文件中,以
yml
格式管理您的朋友列表。 - 配置菜单入口:在网站的导航菜单中,添加入口以便访客访问。
- (可选)配置页面顶部:自定义友情链接页面顶部的欢迎信息和评论区格式。
第一步:创建友情链接页面文件
执行创建页面命令
- 在您Hexo博客的根目录下,打开终端,并输入以下命令:
1
hexo new page link
- 这条命令会在您的
source
目录下创建一个名为link
的文件夹,其中包含一个index.md
文件。
修改页面 Front-matter
- 打开刚刚生成的
source/link/index.md
文件。 - 确保文件顶部的 Front-matter 区域包含
type: "link"
这一项。这是告诉主题使用特殊“友人帐”布局的关键。
请将文件内容修改为:
1
2
3
4
5
title: 友人帐
date: 2025-06-12 11:30:00
type: "link"- 打开刚刚生成的
第二步:添加您的友链数据
友情链接的数据是独立管理的,这样更便于维护。
创建数据文件
- 在
source
目录下,检查是否存在一个名为_data
的文件夹。如果没有,请手动新建一个。 - 在
source/_data/
文件夹内,新建一个名为link.yml
的文件。
- 在
编辑
link.yml
文件- 将您的朋友信息按照下面的格式,添加到
link.yml
文件中。您可以创建多个分类。
格式示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60# 这是一个友链列表,以'-'开头代表一个独立的分类组
-
# class_name: 【必填】友链的分类名称,会作为标题显示
class_name: 框架
# flink_style: 【必填】这个分类下所有友链的展示样式
# 可选值: flexcard (带截图的卡片), telescopic (伸缩卡片), anzhiyu (主题特色列表)
flink_style: flexcard
# hundredSuffix: 【可选】为头像URL添加后缀,通常用于CDN图片处理,例如添加 '!w120' 来请求压缩过的头像
hundredSuffix: ""
# link_list: 【必填】该分类下的友链列表
link_list:
-
name: Hexo # 【必填】友链名称
link: https://hexo.io/zh-tw/ # 【必填】友链链接
avatar: https://d33wubrfki0l68.cloudfront.net/6657ba50e702d84afb32fe846bed54fba1a77add/827ae/logo.svg # 【必填】友链头像
descr: 快速、简单且强大的网站框架 # 【必填】友链描述
-
name: anzhiyu主题
link: https://blog.anheyu.com/
avatar: https://npm.elemecdn.com/anzhiyu-blog-static@1.0.4/img/avatar.jpg
descr: 生活明朗,万物可爱
# siteshot: 【可选】网站截图,当上面的 flink_style 为 flexcard 或 telescopic 时生效
siteshot: https://npm.elemecdn.com/anzhiyu-theme-static@1.1.6/img/blog.anheyu.com.jpg
-
class_name: 推荐博客
flink_style: telescopic
hundredSuffix: ""
link_list:
-
name: 安知鱼
link: https://blog.anheyu.com/
avatar: https://npm.elemecdn.com/anzhiyu-blog-static@1.0.4/img/avatar.jpg
descr: 生活明朗,万物可爱
siteshot: https://npm.elemecdn.com/anzhiyu-theme-static@1.1.6/img/blog.anheyu.com.jpg
# color: 【可选】为左上角的标签设置背景颜色,vip是主题预设的颜色之一
color: vip
# tag: 【可选】在友链卡片的左上角显示一个自定义标签
tag: 技术
-
class_name: 小伙伴
# class_desc: 【可选】这个分类的额外描述,会显示在分类标题下方
class_desc: 那些人,那些事
flink_style: anzhiyu
hundredSuffix: ""
link_list:
-
name: 安知鱼
link: https://blog.anheyu.com/
avatar: https://npm.elemecdn.com/anzhiyu-blog-static@1.0.4/img/avatar.jpg
descr: 生活明朗,万物可爱
# recommend: 【可选】设为 true,会快捷地在左上角添加一个“荐”字标签
recommend: true- 将您的朋友信息按照下面的格式,添加到
第三步:在菜单中显示“友人帐”
打开您主题的配置文件 (
themes/anzhiyu/_config.yml
)。找到
menu:
部分。确保“友人帐”这一项是开启状态(即行首没有
#
注释符)。1
2
3
4
5
6
7menu:
# ... 其他菜单项 ...
友链:
友人帐: /link/ || anzhiyu-icon-link # <--- 确保这一行是开启的
朋友圈: /fcircle/ || anzhiyu-icon-artstation # (可选功能,如需也请开启)
留言板: /comments/ || anzhiyu-icon-envelope
# ... 其他菜单项 ...
(可选)第四步:配置页面顶部信息
您可以自定义友人帐页面顶部的标题,以及评论区申请友链的默认格式。
- 同样在主题配置文件中,找到
linkPageTop:
部分。 - 根据您的喜好进行修改。
1
2
3
4
5
6# 友情链接顶部相关配置
linkPageTop:
enable: true
title: 与数百名博主无限进步 # <--- 可修改为您的自定义标题
# 下方是访客在评论区申请友链时,输入框里默认显示的格式引导
addFriendPlaceholder: "昵称(请勿包含博客等字样):\n网站地址(要求博客地址,请勿提交个人主页):\n头像图片url(请提供尽可能清晰的图片,我会上传到我自己的图床):\n描述:\n站点截图(可选):\n"- 提示:
addFriendPlaceholder
的内容会显示在友人帐页面的评论框中,引导他人以正确的格式向您提交友链申请,非常方便。
- 提示:
信笺样式留言板
这是一个通过插件 hexo-butterfly-envelope
实现的特殊页面,它会将您的留言板渲染成一个从信封中抽出的信纸的动态效果,非常别致。
核心流程概览
- 安装插件:为您的 Hexo 博客添加这个新功能。
- 配置插件:在站点配置文件中,设置信纸的图片、文字等内容。
- 配置菜单入口:在您的网站导航菜单中,添加“留言板”的链接。
第一步:安装 hexo-butterfly-envelope
插件
- 在您 Hexo 博客的根目录下,打开终端,并运行以下命令来安装插件:
1
npm install hexo-butterfly-envelope --save
第二步:配置插件 (根目录 _config.yml
)
打开您博客根目录下的
_config.yml
文件(注意:不是主题的配置文件)。将下面这段
envelope_comment:
配置块,完整地粘贴到文件末尾。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40# 信笺样式留言板 (Envelope Comment Page)
# 插件主页: https://akilar.top/posts/e2d3c450/
envelope_comment:
# --- 功能总开关 ---
enable: true
# --- 自定义图片资源 ---
# 您可以将这些图片下载后放到您自己的图床,然后替换链接
custom_pic:
cover: https://npm.elemecdn.com/hexo-butterfly-envelope/lib/violet.jpg # 信纸顶部的图片
line: https://npm.elemecdn.com/hexo-butterfly-envelope/lib/line.png # 信纸底部的装饰线
beforeimg: https://npm.elemecdn.com/hexo-butterfly-envelope/lib/before.png # 信封的上半部分
afterimg: https://npm.elemecdn.com/hexo-butterfly-envelope/lib/after.png # 信封的下半部分
# --- 信纸上的引导性问题 ---
# 插件会从下面的列表中随机选择一条显示在信纸上
message:
- 有什么想对我说的吗?
- 对我的博客有什么建议或想法?
- 留下你的足迹,我们交个朋友吧!
- 哪怕是有什么想吐槽的,都可以告诉我哦~
# --- 信纸底部的署名 ---
bottom: Prorise 竭诚为您服务! # 仅支持单行文本,已为您替换
# --- (可选)信纸划出的高度 ---
# 如果您的 message 内容很长,可以适当增加这个值
height: # 1024px
# --- (可选)页面的访问路径 ---
# 默认为 /comments/,生成的页面地址就是 yoursite.com/comments/
path: comments
# --- (可选)为这个自动生成的页面设置 Front-matter ---
# 这是最关键的部分,它定义了留言板页面的属性
front_matter:
title: 留言板 # 页面标题
comments: true # 允许评论(必须为true)
top_img: false # 不显示页面顶部的横幅大图
type: envelope # 页面类型,主题会根据这个来应用特殊样式
第三步:在菜单中添加入口
现在,我们需要让访客能够从导航菜单中找到这个新创建的页面。
打开您主题的配置文件 (
themes/anzhiyu/_config.yml
)。找到
menu:
部分。确保“留言板”这一项是开启状态(即行首没有
#
注释符)。1
2
3
4
5
6
7menu:
# ... 其他菜单项 ...
友链:
友人帐: /link/ || anzhiyu-icon-link
朋友圈: /fcircle/ || anzhiyu-icon-artstation
留言板: /comments/ || anzhiyu-icon-envelope # <--- 确保这一行是开启的
# ... 其他菜单项 ...- 重要提示:请确保这里的路径
/comments/
与您在envelope_comment.path
中设置的路径保持一致。
- 重要提示:请确保这里的路径
“关于我”页面
此页面并非一个简单的Markdown页面,而是一个由数据驱动、用于全面展示您个人信息的独立展示页,包含了技能、生涯、爱好等多个模块。
核心流程概览
- 创建页面文件:通过Hexo命令生成“关于”页面的基础文件。
- 创建并编辑数据文件:在
_data
目录中,通过about.yml
文件来管理和定义页面上显示的所有内容。 - 配置菜单入口:在网站的导航菜单中,添加“关于本人”的链接。
第一步:创建“关于”页面文件
执行创建页面命令
- 在您Hexo博客的根目录下,打开终端,并输入以下命令:
1
hexo new page about
- 这会在您的
source
目录下创建一个about
文件夹及index.md
文件。
修改页面 Front-matter
- 打开
source/about/index.md
文件。 - 确保文件顶部的 Front-matter 区域包含
type: "about"
,并建议关闭侧边栏和评论区以获得最佳展示效果。
请将文件内容修改为:
1
2
3
4
5
6
7
8
title: 关于我
date: 2025-06-13 16:13:06
aside: false
top_img: false
comments: true
type: "about"- 打开
第二步:创建并编辑您的个人信息数据 (about.yml
)
这是最关键的一步,页面的所有内容都由这个文件定义。
- 创建数据文件
- 在
source/_data/
文件夹内,新建一个名为about.yml
的文件。
编辑
about.yml
文件- 将下面的模板完整复制到
about.yml
文件中,然后将里面的信息替换成您自己的。我已经为您预先填写和注释了一些内容。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142# 这是一个列表,但通常我们只配置一个项目
-
# --- 顶部核心信息 ---
class_name: 关于我
subtitle: 代码构建世界,思想驱动未来✨ # 副标题
avatarImg: /img/user/avatar.webp # 您的头像
name: Prorise # 您的名字
description: 是一名 超全栈工程师、独立开发者、博主 # 您的身份描述
# --- 头像旁的技能标签 ---
avatarSkills:
left:
- 😉 全栈开发工程师
- 🤝 分享与热心帮助
- 🏠 前端架构设计师
- 🔨 技术栈之多面手
right:
- 专修交互与设计🤝
- 脚踏实地行动派🏃
- 团队小组发动机🧱
- 执行力属性爆棚💢
# --- 关于站点 ---
aboutsiteTips:
tips: 目标
title1: 源于
title2: 热爱而去 感受
word:
- 学习
- 生活
- 程序
- 体验
helloAbout: Prorise
# --- 技能模块 ---
skillsTips:
tips: 技能
title: 开启创造力
# --- 生涯模块 ---
careers:
tips: 生涯
title: 无限进步
list: # 您的教育或工作经历
- desc: "广东计算机科学与技术"
color: "#357ef5"
- desc: "超全栈开发工程师"
color: "#357ef5"
img: https://bu.dusays.com/2023/04/21/644287166329b.png # 背景图
# --- 文章统计模块 ---
statistic:
link: /archives/
text: 文章隧道
cover: https://bu.dusays.com/2023/05/01/644f4b037b930.jpg
# --- 地图模块 ---
map:
title: 我现在住在
StrengthenTitle: 广东省潮州市 # 您所在的国家或城市
background: https://tc.z.wiki/autoupload/iXoPwUD80CPTvQUyITTBFOykMT9FcWW5SasRoXZEs3Wyl5f0KlZfm6UsKj-HyTuv/20250613/TerO/1474X484/8d3acb37-2cb0-4b18-a6c4-a28e2894aba1.png
backgroundDark: https://bu.dusays.com/2023/07/05/64a4c63495ac5.jpg
# --- 更多个人信息 ---
selfInfo:
selfInfoTips1: 生于
selfInfoContentYear: 2005 # 您的出生年份
selfInfoTips2: 就业于
selfInfoContent2: 网络茫茫大海
selfInfoTips3: 现在职业
selfInfoContent3: 全栈工程师
# --- 16Personalities 性格测试模块 (可选) ---
personalities:
author_name: INFJ-T
personality_type: "提倡者"
photo_url: "https://tc.z.wiki/autoupload/iXoPwUD80CPTvQUyITTBFOykMT9FcWW5SasRoXZEs3Wyl5f0KlZfm6UsKj-HyTuv/20250613/sdwO/DM-20250613173929-001.svg"
personality_img: "https://tc.z.wiki/autoupload/iXoPwUD80CPTvQUyITTBFOykMT9FcWW5SasRoXZEs3Wyl5f0KlZfm6UsKj-HyTuv/20250613/m2uo/DM-20250613174238-001.svg"
name_url: "https://tc.z.wiki/autoupload/iXoPwUD80CPTvQUyITTBFOykMT9FcWW5SasRoXZEs3Wyl5f0KlZfm6UsKj-HyTuv/20250613/sdwO/DM-20250613173929-001.svg"
# --- 座右铭模块 ---
maxim:
maxim_tips: 座右铭
maxim_top: 保持饥饿,
maxim_bottom: 保持愚蠢。
# --- 特长模块 ---
buff:
buff_tips: 特长
buff_top: 不会聊天的 技术宅
buff_bottom: 学习指数 MAX
# --- 游戏/番剧/音乐/关注偏好模块 ---
# 根据您的实际情况填写或删除
game:
game_tips: 爱好游戏
game_title: 英雄联盟
game_uid: "游戏ID: Prorise"
game_bg: https://tc.z.wiki/autoupload/iXoPwUD80CPTvQUyITTBFOykMT9FcWW5SasRoXZEs3Wyl5f0KlZfm6UsKj-HyTuv/20250613/oYRd/1192X703/f836eb3c-f02b-42be-9eda-e7854e8de265.png
comic:
comic_tips: 爱好番剧
comic_title: 追番
comic_list:
- name: 约定的梦幻岛
href: https://img02.anheyu.com/adminuploads/1/2022/12/13/63988658aa1b1.webp
cover: https://img02.anheyu.com/adminuploads/1/2022/12/13/63988658aa1b1.webp
- name: 咒术回战
href: https://www.bilibili.com/bangumi/media/md28229899/?spm_id_from=666.25.b_6d656469615f6d6f64756c65.1
cover: https://img02.anheyu.com/adminuploads/1/2022/12/13/6398864e572ed.webp
- name: 紫罗兰永恒花园
href: https://www.bilibili.com/bangumi/media/md8892/?spm_id_from=666.25.b_6d656469615f6d6f64756c65.1
cover: https://img02.anheyu.com/adminuploads/1/2022/12/13/639886315d658.webp
- name: 未闻花名
href: https://www.bilibili.com/bangumi/media/md22718131/?spm_id_from=666.25.b_6d656469615f6d6f64756c65.1
cover: https://tc.z.wiki/autoupload/iXoPwUD80CPTvQUyITTBFOykMT9FcWW5SasRoXZEs3Wyl5f0KlZfm6UsKj-HyTuv/20250613/LXVm/474X663/226eae35-d054-4419-9cac-02a822b19913.png
- name: 星游记
href: https://www.bilibili.com/bangumi/media/md135652/?spm_id_from=666.25.b_6d656469615f6d6f64756c65.1
cover: https://tc.z.wiki/autoupload/iXoPwUD80CPTvQUyITTBFOykMT9FcWW5SasRoXZEs3Wyl5f0KlZfm6UsKj-HyTuv/20250613/XVRo/770X1080/bd2b1fe4-4a01-40c3-99cd-34a566b6fec9.png
like:
like_tips: 关注偏好
like_title: 新硬件 & 开源项目
like_bg: https://bu.dusays.com/2022/12/06/638f5f05ce1f7.jpg
like_bottom: 手机、电脑软硬件
music:
music_tips: 音乐偏好
music_title: 纯音、轻音乐、美音
music_bg: https://p2.music.126.net/Mrg1i7DwcwjWBvQPIMt_Mg==/79164837213438.jpg
music_link: /music/
# --- 打赏列表 (可选) ---
# 如果您不需要展示打赏记录,可以直接删除整个 reward_list 模块
reward_list:
- name: 感谢A
amount: 8.8
datatime: 2025-06-01
- name: 感谢B
amount: 66.6
datatime: 2025-05-20- 将下面的模板完整复制到
在_data
新建creativity.yml_data
填入以下信息用于确认个人技术栈
1 | - category_name: "前端开发" |
第三步:在菜单中显示“关于本人”
打开您主题的配置文件 (
themes/anzhiyu/_config.yml
)。找到
menu:
部分,确保“关于本人”这一项是开启状态(行首没有#
注释符)。1
2
3
4
5
6menu:
# ... 其他菜单项 ...
关于:
关于本人: /about/ || anzhiyu-icon-paper-plane # <--- 确保这一行是开启的
闲言碎语: /essay/ || anzhiyu-icon-lightbulb
# ... 其他菜单项 ...
相册集
这是什么?
这是一个两层结构的相册系统。您可以创建一个“相册大厅”页面,用于展示您所有不同主题的相册封面。点击任意一个封面后,会进入该相册的“展厅”页面,浏览其中的所有照片。
核心流程概览
- 创建“相册大厅”页面:这是所有相册的入口。
- 创建并编辑相册数据 (
album.yml
):在这里管理您所有的相册信息和照片列表。 - 为每个相册创建独立的“展厅”页面 (关键步骤):
album.yml
中的每个相册都需要一个对应的页面。 - 在菜单中添加入口:让访客能找到您的“相册大厅”。
第一步:创建“相册大厅”页面 (/album/
)
- 执行创建页面命令
- 在您Hexo博客的根目录下,打开终端,输入:
1
hexo new page album
- 修改页面 Front-matter
- 打开新生成的
source/album/index.md
文件。 - 确保其
type
为"album"
。
1
2
3
4
5
6
7
title: 相册集
date: 2025-06-13 22:20:00
aside: false
top_img: false
type: "album" - 打开新生成的
第二步:创建并编辑您的相册数据 (album.yml
)
- 创建数据文件
- 在
source/_data/
文件夹内,新建一个名为album.yml
的文件。
编辑
album.yml
文件- 这个文件是您所有相册的“总数据库”。它是一个列表,列表中的每一项(以
-
开头)都代表一个独立的相册集。 - 请将下面的模板复制到文件中,并根据注释修改为您自己的内容。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84# 这是一个相册列表,每个 '-' 开头的块代表一个独立的相册集
-
class_name: "我的摄影作品" # 【必填】相册集的名称
path_name: /my-photos/ # 【必填】这个相册的专属访问路径。必须与您在第三步中创建的页面文件夹名完全一致
type: 2 # 【必填】相册页面样式类型 (1 或 2)
description: "记录生活中的光影瞬间" # 【必填】相册的描述
cover: https://picsum.photos/800/600?random=1 # 【必填】这个相册在"相册大厅"里显示的封面图
rowHeight: 220 # 【可选】仅当 type 为 2 时有效,照片墙的行高
limit: 10 # 【可选】仅当 type 为 2 时有效,每次懒加载的数量
lazyload: true # 【可选】仅当 type 为 2 时有效,是否开启懒加载
btnLazyload: false # 【可选】将懒加载模式从"滚动到底部加载"变为"点击按钮加载"
# 这个相册集里的照片列表
album_list:
-
date: 2025-06-10 # 照片日期
content: "城市夜景,灯火辉煌的街道,记录下这个不眠的夜晚。" # 照片描述
address: "日本, 东京" # 拍摄地点
from: Prorise # 拍摄者
image: # 照片URL列表,可以放多张
- https://picsum.photos/600/800?random=2
- https://picsum.photos/800/600?random=3
- https://picsum.photos/600/900?random=4
- https://picsum.photos/900/600?random=5
-
date: 2025-06-11
content: "古典建筑与现代都市的完美融合,传统与现代的对话。"
address: "日本, 京都"
from: Prorise
image:
- https://picsum.photos/800/600?random=6
- https://picsum.photos/600/800?random=7
- https://picsum.photos/700/500?random=8
- https://picsum.photos/500/700?random=9
- https://picsum.photos/800/800?random=10
-
date: 2025-06-12
content: "自然风光,山川湖海的壮美,感受大自然的力量。"
address: "瑞士, 阿尔卑斯山"
from: Prorise
image:
- https://picsum.photos/900/600?random=11
- https://picsum.photos/600/900?random=12
- https://picsum.photos/800/500?random=13
- https://picsum.photos/500/800?random=14
- https://picsum.photos/700/700?random=15
- https://picsum.photos/600/600?random=16
-
class_name: "我的日常生活"
path_name: /my-daily-life/
type: 1
description: "一些沙雕日常和有趣的事情。"
cover: https://picsum.photos/800/600?random=17
album_list:
-
date: 2025-06-01
content: "周末宅家时光,享受慵懒的午后阳光。"
address: "家里"
from: Prorise
image:
- https://picsum.photos/600/800?random=18
- https://picsum.photos/800/600?random=19
- https://picsum.photos/500/700?random=20
-
date: 2025-06-02
content: "和朋友们的聚餐时光,美食配美景。"
address: "咖啡厅"
from: Prorise
image:
- https://picsum.photos/700/500?random=21
- https://picsum.photos/600/600?random=22
- https://picsum.photos/800/500?random=23
- https://picsum.photos/500/800?random=24
- https://picsum.photos/900/600?random=25
-
date: 2025-06-03
content: "公园散步,发现生活中的小美好。"
address: "中央公园"
from: Prorise
image:
- https://picsum.photos/600/900?random=26
- https://picsum.photos/800/600?random=27
- https://picsum.photos/700/700?random=28- 这个文件是您所有相册的“总数据库”。它是一个列表,列表中的每一项(以
第三步:为每个相册创建独立的“展厅”页面 (关键步骤)
这是此功能最关键也最容易被忽略的一步。您在 album.yml
中定义的每一个相册集,都必须有一个与之对应的、真实存在的页面。
根据
path_name
创建页面- 例如,在上面的
album.yml
示例中,我们定义了两个相册集,它们的path_name
分别是/my-photos/
和/my-daily-life/
。 - 那么,您就必须在终端执行两条命令来创建对应的页面:
1
2hexo new page my-photos
hexo new page my-daily-life- 例如,在上面的
修改详情页的 Front-matter
- 分别打开新生成的
source/my-photos/index.md
和source/my-daily-life/index.md
文件。 - 将它们各自的
type
都设置为"album_detail"
。
my-photos/index.md
示例:1
2
3
4
5
6
7
title: 我的摄影作品
date: 2025-06-13 22:30:00
aside: false
top_img: false
type: "album_detail" # <--- 关键!类型必须是 "album_detail"my-daily-life/index.md
示例:1
2
3
4
5
6
7
title: 我的日常生活
date: 2025-06-13 22:31:00
aside: false
top_img: false
type: "album_detail" # <--- 关键!类型必须是 "album_detail"总结:如果您在
album.yml
中定义了三个相册集,那么您就需要重复此步骤三次,创建三个对应的页面文件夹,并修改三个对应的.md
文件。- 分别打开新生成的
第四步:在菜单中显示“相册集”
- 打开您主题的配置文件 (
themes/anzhiyu/_config.yml
)。 - 找到
menu:
部分,确保“相册集”这一项是开启状态。1
2
3
4
5
6
7menu:
# ...
我的:
# ...
相册集: /album/ || anzhiyu-icon-images # <--- 确保这一行是开启的
# ...
# ...
音乐馆
这是什么?
本功能通过强大的 APlayer
播放器和 MetingJS
库,为您的博客创建一个专属的音乐播放页面。它不仅可以播放您自己收藏的音乐,还能直接拉取主流音乐平台(如网易云、QQ音乐)的歌单。
核心流程概览
- 安装并配置 APlayer 插件:这是所有音乐功能的基础。
- 创建“音乐馆”页面文件:生成
/music/
这个页面。 - 配置菜单入口与默认歌单:在导航菜单中添加链接,并指定音乐馆页面默认播放哪个歌单。
- (可选)配置自定义歌单:创建一个由您自己指定的歌曲组成的“切换歌单”。
第一步:安装并配置 APlayer 插件 (根目录)
安装插件
- 在您Hexo博客的根目录下,打开终端,运行以下命令来安装
hexo-tag-aplayer
插件(它集成了APlayer和MetingJS):
1
npm install hexo-tag-aplayer --save
- 在您Hexo博客的根目录下,打开终端,运行以下命令来安装
配置根目录
_config.yml
- 打开您博客根目录下的
_config.yml
文件。 - 在文件末尾添加以下配置,以开启 MetingJS 功能。
1
2
3
4# APlayer 播放器配置
aplayer:
meting: true # 必须开启,以支持从音乐平台获取歌单
asset_inject: false # 主题会自行处理资源注入,这里建议设为false- 打开您博客根目录下的
第二步:创建“音乐馆”页面
执行创建页面命令
- 在终端中运行:
1
hexo new page music
1 |
|
第三步:配置菜单入口与默认歌单 (关键步骤)
打开主题配置文件 (
themes/anzhiyu/_config.yml
)。找到
menu:
部分,确保“音乐馆”这一项是开启状态。修改链接以指定默认歌单:音乐馆页面默认显示哪个歌单,是在菜单配置的链接中决定的。您需要修改
音乐馆:
这一行的链接,为其加上server
和id
参数。1
2
3
4
5
6
7
8menu:
# ...
我的:
# 格式: /music/?server=平台名称&id=歌单ID
音乐馆: /music/?server=netease&id=8152976493 || anzhiyu-icon-music # <--- 示例:已修改为网易云音乐歌单
# 追番页: /bangumis/ || anzhiyu-icon-bilibili
# 相册集: /album/ || icon-images
# ...- 参数解释:
server
: 音乐平台名称。常用值有netease
(网易云),tencent
(QQ音乐),kugou
(酷狗),kuwo
(酷我)。id
: 您想播放的歌单或专辑的ID。您可以去对应音乐平台的网页版,打开一个歌单,其网址中的一串数字通常就是ID。
- 参数解释:
第四步:(可选)配置自定义的“切换歌单”
主题还允许您创建一个由自己托管的音乐文件组成的“备用歌单”。页面上会出现一个按钮,让您可以从默认歌单切换到这个自定义歌单。
创建数据文件
- 在
source/
目录下新建一个json
文件夹。 - 在
source/json/
文件夹内,新建一个名为music.json
的文件。
- 在
编辑
music.json
文件- 将您自己的歌曲信息按照下面的格式添加进去。注意:
url
,cover
,lrc
都必须是可公开访问的链接地址。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16[
{
"name": "歌曲名",
"artist": "歌手名",
"url": "https://example.com/music/song1.mp3",
"cover": "https://example.com/images/cover1.jpg",
"lrc": "https://example.com/lyrics/song1.lrc"
},
{
"name": "另一首歌",
"artist": "另一位歌手",
"url": "https://example.com/music/song2.mp3",
"cover": "https://example.com/images/cover2.jpg",
"lrc": "https://example.com/lyrics/song2.lrc"
}
]- 将您自己的歌曲信息按照下面的格式添加进去。注意:
即刻短文
这是什么?
一个独立的页面,以时间线的形式展示一系列简短的、图文并茂的“说说”或“微型博客”。所有内容都通过一个数据文件进行管理,无需为每一条短文都创建 .md
文件,非常方便。
核心流程概览
- 创建“即刻短文”页面文件:通过Hexo命令生成
/essay/
页面的基础文件。 - 创建并编辑短文数据 (
essay.yml
):这是所有短文内容的“数据库”。 - 在菜单中添加入口:让访客能找到这个页面。
第一步:创建“即刻短文”页面
执行创建页面命令
- 在您Hexo博客的根目录下,打开终端,输入:
1
hexo new page essay
修改页面 Front-matter
- 打开新生成的
source/essay/index.md
文件。 - 确保其
type
为"essay"
,并根据需要设置其他属性,通常建议关闭侧边栏。
1
2
3
4
5
6
7
8
title: 闲言碎语
date: 2025-06-13 22:42:00
comments: true
aside: false
top_img: false
type: "essay"- 打开新生成的
第二步:创建并编辑您的短文数据 (essay.yml
)
- 创建数据文件
- 在
source/_data/
文件夹内,新建一个名为essay.yml
的文件。
编辑
essay.yml
文件- 这个文件的结构很特别,第一部分是对整个页面的配置,第二部分
essay_list
则是具体的短文列表。 - 请将下面的模板复制到文件中,并根据注释修改为您自己的内容。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46# 这是一个列表,但通常我们只配置第一项作为整个页面的设置
-
# --- 页面整体配置 ---
title: "即刻短文" # 【必填】页面大标题
subTitle: "记录日常的灵感与碎碎念" # 【必填】副标题
tips: "随时随地,分享生活" # 【必填】提示性文字
buttonText: "关于我" # 【可选】页面顶部按钮的文字
buttonLink: /about/ # 【可选】页面顶部按钮的链接
limit: 10 # 【可选】首次加载显示的短文数量
home_essay: true # 【可选】是否在首页也显示一个“即刻短文”的模块
top_background: https://example.com/bg.jpg # 【可选】页面顶部的背景图
# --- 短文列表 ---
essay_list:
# 示例1:纯文字
- content: "今天天气真好,适合写代码!"
date: 2025-06-13 22:45:00
# 示例2:带图片和链接
- content: "发现一个很棒的开源项目,推荐给大家。"
date: 2025-06-12
image:
- https://example.com/project-screenshot.png
link: https://github.com/example/project # 点击这条短文会跳转到这个链接
# 示例3:内嵌B站视频
# 注意:链接必须是 player.bilibili.com 的格式
- content: "最近在看这个教程,讲得非常清楚。"
date: 2025-06-11
video:
- https://player.bilibili.com/player.html?bvid=BV1Ch41137tR&autoplay=0
# 示例4:内嵌音乐播放器
- content: "分享一首最近单曲循环的歌。"
date: 2025-06-10
aplayer:
server: netease # 音乐平台: netease, tencent, kugou, kuwo
id: '12345678' # 歌曲或歌单ID
# 示例5:带地点和出处
- content: "今天在秋叶原淘到了好东西!"
date: 2025-06-09
address: 日本, 东京 # 地点
from: Prorise # 来源/作者
image:
- https://example.com/akihabara.jpg- 这个文件的结构很特别,第一部分是对整个页面的配置,第二部分
第三步:在菜单中显示“闲言碎语”
- 打开您主题的配置文件 (
themes/anzhiyu/_config.yml
)。 - 找到
menu:
部分,确保“闲言碎语”这一项是开启状态。1
2
3
4
5
6
7menu:
# ...
关于:
关于本人: /about/ || anzhiyu-icon-paper-plane
闲言碎语: /essay/ || anzhiyu-icon-lightbulb # <--- 确保这一行是开启的
# ...
# ...
友情链接朋友圈(部署后实现)
这是什么?
这是一个非常强大的功能,它能自动抓取您所有友情链接博客的最新文章,并以“朋友圈”或“时间线”的形式聚合在一个独立页面上,极大地增强了博客社区的互动性,但在项目初期还没有这么多的友链,所以我们滞后在完善这个页面
核心架构:三个关键部
要理解这个功能的配置,首先要明白它由三部分组成:
- 您的博客页面 (
/fcircle/
):这是最终展示给访客看的页面。 - 朋友圈的前端应用 (Vue.js App):一个JS文件,负责从后端获取数据并在页面上渲染出朋友圈的样式。
- 朋友圈的后端服务 (API Server):这是最关键、最需要您动手的部分。这是一个独立的、需要您自己部署的服务,它会像一个机器人,定期去您所有朋友的博客上“看”一下有没有新文章,然后把新文章的列表整理好,等待前端应用来获取。
第一步:部署朋友圈后端服务 (最关键、最复杂)
- 理解其作用:您需要先拥有一个能工作的后端API服务。这个服务通常是基于一个名为
hexo-circle-of-friends
的开源项目。 - 如何部署:您需要将这个项目部署到您自己的服务器或云平台(例如 Vercel, Railway, Zeabur 等免费平台)上。
- 项目地址:
https://github.com/Rock-Candy-Tea/hexo-circle-of-friends
- 操作指南:请您仔细阅读该项目的官方文档来进行部署。这个过程通常涉及到数据库配置、爬虫规则设置等,是整个流程中最具技术挑战性的部分。
- 重要提示 (
TIP
):根据您提供的文档,在配置后端时,请注意爬取规则可能需要使用common2
格式,以确保能正确抓取到您朋友的数据。
- 项目地址:
- 获取成果:当您成功部署后端服务后,您会得到一个您自己的、可以公开访问的API地址,例如
https://my-friends-api.vercel.app
。这个就是我们后续配置需要的apiurl
。
第二步:(可选)定制并托管前端JS文件
官方提供的 vue_js
文件(.../index.f9a2b8d2.js
)默认是去请求原作者的后端API。如果您在第一步中部署了自己的后端,就需要让这个JS文件去请求您自己的API地址。
- 方法A(修改JS文件):根据文档,您可以下载官方的JS文件,用文本编辑器打开,搜索并替换里面的
friends.anheyu.com
为您自己的后端API域名,然后将修改后的JS文件上传到您自己的CDN或服务器,并在后续配置中使用您自己的JS文件链接。 - 方法B(自行构建):更可靠的方法是,根据前端项目
hexo-circle-of-friends-front
的说明,在您本地修改源代码中的API地址,然后自己运行npm run build
来构建出全新的JS文件,最后再上传使用。
初期建议:为了简化流程,您可以暂时跳过这一步,先使用官方默认的JS和后端API来查看效果,等您自己的后端部署成功并运行稳定后,再回来进行替换。
第三步:创建 Hexo 页面
在您博客的根目录下,打开终端,运行命令:
1
hexo new page fcircle
打开新生成的
source/fcircle/index.md
文件,确保其front-matter
如下,type: "fcircle"
是关键。1
2
3
4
5
6
7
8
title: 朋友圈
date: 2025-06-12 18:00:00
comments: false
aside: false
top_img: false
type: "fcircle"
第四步:配置您的 Hexo 主题
配置菜单入口
- 打开您主题的配置文件 (
themes/anzhiyu/_config.yml
)。 - 找到
menu:
部分,确保“朋友圈”这一项是开启的(行首没有#
)。
1
2
3
4
5
6
7menu:
# ...
友链:
# 友人帐: /link/ || anzhiyu-icon-link
朋友圈: /fcircle/ || anzhiyu-icon-artstation # <--- 确保这一行是开启的
# 留言板: /comments/ || anzhiyu-icon-envelope
# ...- 打开您主题的配置文件 (
配置
friends_vue
- 在同一个主题配置文件中,找到
friends_vue:
部分。 - 将
enable
设为true
,并填入您在第一步中部署好的后端服务API地址。
1
2
3
4
5
6
7
8
9# 朋友圈配置
friends_vue:
enable: true
# 初期可使用官方JS,后续替换为您自己在第二步中生成的JS地址
vue_js: https://npm.elemecdn.com/anzhiyu-theme-static@1.1.2/friends/index.f9a2b8d2.js
# 【必填】这里填写您在第一步中部署好的后端服务API地址
apiurl: 'https://friends.anheyu.com/' # <--- 这是一个示例,请替换为您自己的API地址
# 【可选】朋友圈页面顶部的背景图
top_background: 'https://example.com/your-bg.jpg'- 在同一个主题配置文件中,找到
总结与建议
友情链接朋友圈是一个非常酷的功能,但它的配置流程是目前我们遇到的所有功能里最复杂的,因为它要求您独立部署和维护一个后端服务。
我的建议是:您可以将这个功能作为您博客的长期目标。在初期,可以先专注于写文章和配置其他更简单的功能。当您对整个建站流程更熟悉,并且有精力去研究后端部署时,再来挑战这个功能,会更有成就感。