Hexo anzhiyu 主题深度定制系列(五):友链页顶部区块、底部版权栏、音乐页/时钟/代码注入等杂项配置

AI-摘要
Yoki AI
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
Hexo anzhiyu 主题深度定制系列(五):友链页顶部区块、底部版权栏、音乐页/时钟/代码注入等杂项配置
Yoki前言
本篇收纳那些「单独拎出来不够一篇,但每个站都会改」的配置项,按功能模块逐个拆解,配置即生效,无需改源码。
1. 友链页顶部欢迎区块(linkPageTop)
1.1 效果
开启后 /link/ 页面顶部会渲染一整屏 Hero 区块:
- 左侧大标题 + 副标题
- 右侧「申请友链」按钮 → 跳转评论区(需配合 Twikoo/Waline)
- 底部自定义格式占位文本(引导访客按格式留言申请)
1.2 配置(_config.anzhiyu.yml)
1 | linkPageTop: |
1.3 前置条件
source/link/index.md 必须指定 type: link:
1 | --- |
1.4 模板源码(themes/anzhiyu/layout/includes/page/link.pug 片段)
1 | if theme.linkPageTop.enable |
2. 底部栏版权协议链接(footerBar.cc)
2.1 效果
页脚最右侧(或左侧,视布局)出现 CC 协议图标 + 链接,点击跳转 /copyright/ 页面。
2.2 配置
1 | footerBar: |
2.3 配套页面(source/copyright/index.md)
1 | --- |
2.3 模板渲染(themes/anzhiyu/layout/includes/footer.pug 片段)
1 | if theme.footerBar.cc.enable |
3. 音乐页关闭评论
3.1 一行配置
source/music/index.md:
1 | --- |
同理适用于
about、album、pixiv等任意页面,前置变量comments: false即可屏蔽评论区。
4. 导航栏时钟/天气组件关闭
4.1 配置
1 | menu: |
4.2 原理
themes/anzhiyu/layout/includes/nav.pug读取theme.menu.nav.clock- 为
false时不渲染<div id="clock">,也不加载clock.pug对应的 JS/CSS - 原主题自带的
clock.pug(天气 API、qweather/weatherwidget 切换)可保留不动,仅不引入
4.3 彻底清理(可选)
若确定永不再用,可删除:
themes/anzhiyu/layout/includes/nav/clock.pugthemes/anzhiyu/source/js/anzhiyu/clock.jsthemes/anzhiyu/source/css/_layout/clock.styl
升级主题时不再产生冲突。
5. 代码注入双模式(inject)
5.1 两种注入方式对比
| 方式 | 位置 | 优点 | 缺点 |
|---|---|---|---|
inject.head/bottom |
</head> 前 / </body> 前 |
配置文件改完即生效、无需改模板、支持多行 HTML | 静态注入,无法根据运行时变量动态决定 |
| JS 动态注入 | 任意时机(如 pjax:complete) |
可判断条件、延迟加载、失败重试 | 需改 main.js、维护成本稍高 |
5.2 51.LA 静态注入(备选方案)
1 | inject: |
切换清单:
inject.head取消注释上述 4 行themes/anzhiyu/source/js/anzhiyu/main.js注释statistics51aInit()调用hexo clean && hexo g验证 Network 面板只加载一次 SDK
5.3 自定义 CSS/JS 注入示例
1 | inject: |
文件位置:
source/css/custom.csssource/js/custom.js
这两个文件不在主题目录,升级主题完全不受影响。
6. 欢迎语时间段配置(greetingBox)
6.1 效果
首页左下角/右下角浮动卡片,根据当前时间显示不同问候语。
6.2 配置
1 | greetingBox: |
6.3 注意
startTime/endTime为 小时整数,区间[startTime, endTime)- 必须 覆盖 0-24 全天,否则会有空白时段显示
default - 该功能在
themes/anzhiyu/layout/includes/greeting.pug渲染,JS 端每分钟轮询一次
7. 无障碍优化(accesskey)
7.1 配置
1 | accesskey: |
7.2 效果
首页按下 Shift + ? 弹出快捷键帮助面板,包含:
s→ 搜索t→ 回顶部b→ 回底部c→ 目录n→ 下一篇p→ 上一篇
7.3 源码(themes/anzhiyu/source/js/anzhiyu/accesskey.js)
1 | const KEY_MAP = { |
8. 动效开关(dynamicEffect)
1 | dynamicEffect: |
postTopWave:themes/anzhiyu/layout/includes/post/top_img.pug控制,CSSkeyframes wavepostTopRollZoomInfo:post_top_roll_zoom_info.styl+main.js监听 scrollpageCommentsRollZoom:仅在page.comments存在且评论系统为 Twikoo 时生效
9. CDN 配置(CDN 字段,非必要勿动)
1 | CDN: |
local= 本地source/lib,离线可用、升级主题需手动同步cbd=cdn.cbd.int,国内访问极快,推荐option可单独覆盖某个库的 provider,如option: { aplayer_js: 'unpkg' }
10. 小结清单
| 配置项 | 文件 | 关键开关 | 备注 |
|---|---|---|---|
| 友链页顶部 | _config.anzhiyu.yml |
linkPageTop.enable |
需 source/link/index.md 有 type: link + comments: true |
| 底部版权 | _config.anzhiyu.yml |
footerBar.cc.enable |
需配套 source/copyright/index.md |
| 音乐页评论 | source/music/index.md |
comments: false |
通用前置变量 |
| 导航时钟 | _config.anzhiyu.yml |
menu.nav.clock: false |
彻底关闭可删模板文件 |
| 代码注入 | _config.anzhiyu.yml |
inject.head/bottom |
静态注入备选动态注入 |
| 欢迎语 | _config.anzhiyu.yml |
greetingBox.enable |
必须覆盖 0-24h |
| 无障碍 | _config.anzhiyu.yml |
accesskey.enable |
Shift+? 触发 |
| 动效 | _config.anzhiyu.yml |
dynamicEffect.* |
按需开启 |
11. 下一篇预告
《部署与 CI/CD 终极指南:GitHub Actions + Cloudflare Pages、Secrets 管理、Submodule 升级流程、自动生成配置》
敬请期待!
评论
匿名评论隐私政策
TwikooWaline
✅ 你无需删除空行,直接评论以获取最佳展示效果




