Hexo开源模板的使用方法

1. hexo-theme-Fomalhaut主题
1.1 前言
开源地址:hexo-theme-Fomalhaut。
由于Github下载限速,这里提供123网盘下载,无提取码。
开源项目并不适合纯小白,需要一定的前端基础和魔改经验,因此安装之前务必对
Hexo框架命令
和Butterfly主题
比较熟悉,以及掌握最基础的HTML5、CSS3、JavaScript知识,不熟悉的朋友建议提前熟悉Hexo 中文文档和Butterfly 主题文档!!!避免各种不必要的麻烦!!!本源码是基于
Butterfly 4.3.1
的二次开发,暂时没做完全的主题分离,因此安装方法是整个博客的替换,建议另起一个文件夹
进行安装,或备份好原来的资料再搬过来。当然你也可以不直接搬走,而是借鉴里面的部分代码写法。
1.2 安装教程
⛄注意:作者演示的是 NodeJS v16.14.0
+ Hexo 6.3.0
.
- 安装
NodeJs
、Hexo
、Git
、注册并连接Github
。
⛄注意:相当于基础教程的第 1-7 步,第 8 步就不要做了,不然会清空源码的!!!(不是新手请跳过这条)
把源码打包下载到自己的电脑,然后解压缩到一个你喜欢的文件夹中。
在
git bash
命令中切换到下载的博客根目录,使用以下命令进行模块安装。这里绝不能
使用hexo init初始化,若不慎用了,则站点的配置文件_config.yml
内容会被重置。1
npm i
执行以下命令清空并启动项目,启动成功后再浏览器地址栏输入:
localhost:4000
进行验证.1
hexo cl; hexo g; hexo s
到这里一般是没啥问题的了,当本地能成功启动后,改一下站点配置文件的
_config.yml
的deploy
配置项,然后用以下命令部署到Github
(这一步出问题的,请删除站点配置文件的deploy
配置项与baidu_url_submitter
的信息)。1
hexo d
1.3 常用配置选项修改
js 的主体在
source/js/fomal.js
里面,做了基本分块逻辑的标注,后期整合的,以... start
和... end
包裹css 主体在
themes\butterfly\source\css\_custom\custom.css
里,与 Butterfly 的自带样式联合编译为一个index.css
,有基本的注释。因为兼顾了白天夜间模式不同壁纸和用户自定义壁纸,背景的切换做在了
fomal.js
的第3190
行附近,美化模块代码逻辑在fomal.js
的第2894-3596
行,四个背景分别为 PC 端白天、PC 端黑夜、手机端白天、手机端黑夜;美化模块起点为第3356
行,可以自定义任何 DOM,例如按钮、滑块、开关按钮、图片框和外挂标签等(注意:外挂标签必须要被<div id="article-container">
包裹才会被渲染)。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/* 美化模块 start */
...
// 雪花开关(这里就是默认关雪花,如果你想默认开就将none改为block)
if (localStorage.getItem("snow") == undefined) {
localStorage.setItem("snow", "none");
}
...
// 背景图(约3190行) 下面链接换成你自己的图片链接
document.getElementById("defineBg").innerText = `:root{
--default-bg: url(https://lskypro.acozycotage.net/Fomalhaut/img/dm14.webp);
--darkmode-bg:url(https://lskypro.acozycotage.net/Fomalhaut/img/yuanshen1.webp);
--mobileday-bg: url(https://lskypro.acozycotage.net/Fomalhaut/img/snow.webp);
--mobilenight-bg: url(https://lskypro.acozycotage.net/Fomalhaut/img/mb8.webp);
}`;
...
// 美化模块主体DOM(约3356行)
winbox.body.innerHTML = `
...
<h3>1. 二次元</h3>
{% folding cyan, 查看二次元背景 %}
<div class="bgbox">
<a href="javascript:;" rel="noopener external nofollow" style="background-image:url(https://lskypro.acozycotage.net/Fomalhaut/img/home_bg.webp)" class="imgbox" onclick="changeBg('url(https://lskypro.acozycotage.net/Fomalhaut/img/home_bg.webp)')"></a>
// 这里自己加图片
</div>
{% endfolding %}
...
`
...
/* 美化模块 end */页脚部分请见
themes\butterfly\layout\includes\footer.pug
,包括页脚计时器、徽标、文字、布局等。封面图在主题配置文件
_config.butterfly.yml
的default_cover
配置项,建议配置多项后随机刷出封面图。网站图标为根目录的
favicon.ico
,替换为你自己的图标即可。加载页面时中间的头像在
custom.css
约1300
行附近,直接搜索替换成你自己的头像即可。页脚时间由
fomal.js
控制,搜索以下代码,将网站诞生时间改为你自己的即可(示例:2023-01-09)。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22/* 页脚计时器 start */
var now = new Date();
function createtime() {
// 当前时间
now.setTime(now.getTime() + 1000);
var start = new Date("08/01/2022 00:00:00"); // 旅行者1号开始计算的时间
var dis = Math.trunc(23400000000 + ((now - start) / 1000) * 17); // 距离=秒数*速度 记住转换毫秒
var unit = (dis / 149600000).toFixed(6); // 天文单位
// 网站诞生时间
var grt = new Date("08/09/2022 00:00:00");
...
let currentTimeHtml = "";
(currentTimeHtml =
hnum < 18 && hnum >= 9
? `<img class='boardsign' src='https://lskypro.acozycotage.net/Fomalhaut/badge/F小屋-科研摸鱼中.svg' title='什么时候能够实现财富自由呀~'><br> <div style="font-size:13px;font-weight:bold">本站居然运行了 ${dnum} 天 ${hnum} 小时 ${mnum} 分 ${snum} 秒 <i id="heartbeat" class='fas fa-heartbeat'></i> <br> 旅行者 1 号当前距离地球 ${dis} 千米,约为 ${unit} 个天文单位 🚀</div>`
: `<img class='boardsign' src='https://lskypro.acozycotage.net/Fomalhaut/badge/F小屋-下班休息啦.svg' title='下班了就该开开心心地玩耍~'><br> <div style="font-size:13px;font-weight:bold">本站居然运行了 ${dnum} 天 ${hnum} 小时 ${mnum} 分 ${snum} 秒 <i id="heartbeat" class='fas fa-heartbeat'></i> <br> 旅行者 1 号当前距离地球 ${dis} 千米,约为 ${unit} 个天文单位 🚀</div>`),
document.getElementById("workboard") &&
(document.getElementById("workboard").innerHTML = currentTimeHtml);
}
...
/*页脚计时器 end */控制台字符画,在
fomal.js
找到代码,并进行相应的替换,字符画可以到:Text to ASCII Art Generator (TAAG)生成。欢迎信息地理位置显示,这个需要配置自己的 key,类似的还有 bibi 的配置、朋友圈等配置均需要参考相关文档改成自己的 API。
1.4 主题更新与修复
📅3.13 更新:解决目录一级标题不能直接跳转问题
首先安装包
hexo-toc
.1
npm install hexo-toc --save
进入你项目根目录的 node_modules\hexo-toc\lib\filter.js 中,修改
28
行至31
行,恢复28
行,注释29
行至31
即可。1
2
3
4$title.attr('id', id);
// $title.children('a').remove();
// $title.html( '<span id="' + id + '">' + $title.html() + '</span>' );
// $title.removeAttr('id');清理旧文章缓存,hexo 三连。
1
hexo cl; hexo g; hexo s
📅3.5 更新:微调部分样式,修复手机端无法加载 css 样式
问题在fomal.js
的 1340
行附近,切换至手机端时候导致空指针异常,这部分代码注释
掉即可!
1 | /* 搜索框修复 start */ |
2. Hexo-Theme-Acrylic主题
Bug诸多,暂未完结,等待更新!
Acrylic-Promote: 一个美观,强大,高效的Hexo主题。
由于Github下载限速,我下载好的已存至123网盘。