给Hexo博客换了nexT主题,由于8.0版本的部分美化教程在网上很难找到,所以直接自己动手拆文件改完了。

非技术党,代码全部由chatgpt生成,主题风格是Pisces,感兴趣的可以试一下。

修改头部标题栏背景色

打开 博客根目录\themes\next\source\css\_variables\base.styl 文件,查找 theme-color 并找到以下内容修改对应颜色码。

1
2
3
//原theme-color  = convert(hexo-config('theme_color.light'));
$theme-color = 对应颜色码;
$theme-color-dark = convert(hexo-config('theme_color.dark'));

$theme-color-dark 为夜间模式,也可以修改。

在头部标题栏添加文字

打开 博客根目录\themes\next\layout\_partials\header\brand.njk 文件,查找 site-subtitle 并修改以下代码。

1
<p class="site-subtitle" itemprop="description">文字内容</p>

设置博客背景图片

打开 博客根目录\themes\next\source\css\_schemes\Pisces\index.styl 文件,查找 .main-inner { 并在上方添加以下代码。

1
2
3
4
body {
background:url(背景图片url);
background-attachment: fixed;
}

url地址可以直接填网图,也可以将图片放在 博客根目录\themes\next\source\images 文件夹内并填入对应路径。

修改侧边栏强调色

针对点进文章后,对鼠标点击/悬浮在文章目录站点概括时的强调色进行修改。

打开 博客根目录\themes\next\source\css\_variables\Pisces.styl 文件,查找 $sidebar-nav-color ,修改以下内容。

1
2
3
4
5
// Sidebar
// --------------------------------------------------
$sidebar-nav-color = var(--text-color);
$sidebar-nav-hover-color = 对应颜色码;
$sidebar-highlight = 对应颜色码;

$sidebar-nav-hover-color 为鼠标悬浮时的强调色。
$sidebar-highlight 为鼠标点击时的强调色。

修改超链接颜色

打开 博客根目录\themes\next\source\css\_common\components\post\index.styl 文件,在最下方添加以下代码。

1
2
3
4
5
6
7
8
.post-body p a{
color: 对应颜色码;
border-bottom: none;
&:hover {
color: 对应颜色码;
text-decoration: underline;
}
}

.post-body p a{ 为超链接正常显示的颜色。
&:hover { 为鼠标悬浮在超链接时的颜色。

修改博客字体样式

打开 博客根目录\themes\next\_config.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
font:
enable: true

# Uri of fonts host, e.g. https://fonts.googleapis.com (Default).
host: https://fonts.loli.net

# Font options:
# `external: true` will load this font family from `host` above.
# `family: Times New Roman`. Without any quotes.
# `size: x.x`. Use `em` as unit. Default: 1 (16px)

# Global font settings used for all elements inside <body>.
# body元素的字体设置
global:
external: true
family: "PT Serif, Noto Serif SC"
size: 1.04

# 左上角站点名称区的字体设置
# Font settings for site title (.site-title).
title:
external: true
family:
size:

# 标题的基础字体设置
# Font settings for headlines (<h1> to <h6>).
headings:
external: true
family:
size:

# 文章的字体设置
# Font settings for posts (.post-body).
posts:
external: true
family:

# 代码块的字体设置
# Font settings for <code> and code blocks.
codes:
external: true
family:
  1. font 下的 enablefalse改为true
  2. 添加你喜欢的 host ,个人推荐 https://fonts.loli.net ,当然不改也可以,但默认的谷歌字体在某些地区可能不太容易访问。
  3. 修改 global: 下的 family: 改变字体样式,修改 size 改变字体大小。

修改文章标题样式

针对首页和文章页面中,对文章标题样式进行修改。
打开 博客根目录\source\_data\styles.styl 文件(没有的话就新建一个),在里面添加以下代码。

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
/* 首页标题样式 */
.index .post-title a {
color: #3a5b52; /* 标题颜色 */
position: relative; /* 确保伪元素相对于标题定位 */
text-decoration: none; /* 去除默认的下划线 */
font-size: 25px; /* 标题字体大小 */
font-weight: 550; /* 字体粗细 */
line-height: 1.2; /* 行高 */
margin-bottom: 5px; /* 标题下方的外边距 */
}

/* 首页标题下划线样式 */
.index .post-title a::after {
content: ""; /* 伪元素需要有内容 */
display: block; /* 伪元素需为块级元素以便展示 */
height: 2px; /* 横线的高度 */
background-color: #3a5b52; /* 横线颜色 */
position: absolute; /* 定位伪元素 */
bottom: -3px; /* 横线和标题之间的距离 */
left: 0;
width: 0; /* 初始宽度为 0 */
transition: width 0.3s ease; /* 动画效果 */
}

/* 首页标题悬停效果 */
.index .post-title a:hover::after {
width: 100%; /* 鼠标悬停时横线的宽度 */
}

/* 确保其他可能影响横线的伪元素样式被移除 */
.index .post-title a::before {
content: none; /* 确保没有黑色横线 */
}

/* 文章页标题样式 */
.post .post-title {
color: #3a5b52 !important; /* 强制应用颜色 */
font-size: 25px !important; /* 强制应用字体大小 */
font-weight: 550 !important; /* 强制应用字体粗细 */
}

以上是该博客的文章标题样式,可按照个人需求,根据注释进行修改。

给博客添加 top 文章置顶

添加插件和使用方法请参考JWei Ma大神这篇教程:Next 添加 top 文章置顶
而当我在设置置顶图标时,发现右侧会多出一条竖线,可能JWei Ma大神的教程不适用于 nexT 8.0 版本。
于是稍微改了一部分,并且把图标设置在左边,方法如下。
打开 博客根目录\themes\next\layout\_partials\post\post-meta.njk 文件,在第一行 <div class="post-meta"> 下面,添加以下代码。

1
2
3
4
5
6
{% if post.top %}
<div style="padding-left: 8px;">
<i class="fa fa-thumbtack"></i>
<font color= 对应颜色码 ="font-weight: bold; padding-left: 4px;"> 置顶 </font>
</div>
{% endif %}

这样就可以正常显示了。