Hexo+Next v8.2.0的搭建与优化

前言

很早就想弄一个博客,在大一的暑假终于开始着手搭建,在经过一番研究和比较,我最终决定采用 Hexo 系统来构建我的个人博客。主题选择了比较简洁的Next。
本次搭建环境:

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
主题Next:8.20.0
npm:10.7.0

hexo version
hexo-cli: 4.3.2
os: darwin 23.5.0 14.5
node: 20.15.1
acorn: 8.11.3
ada: 2.7.8
ares: 1.32.1
base64: 0.5.2
brotli: 1.1.0
cjs_module_lexer: 1.2.2
cldr: 44.1
icu: 74.2
llhttp: 8.1.2
modules: 115
napi: 9
nghttp2: 1.61.0
openssl: 3.3.1
simdutf: 5.2.8
tz: 2023c
undici: 6.13.0
unicode: 15.1
uv: 1.48.0
uvwasi: 0.0.21
v8: 11.3.244.8-node.23
zlib: 1.2.12

安装node

  1. 官网下载安装包(建议使用LTS版本)
  2. Mac用户推荐使用brew安装
1
2
brew install node@20    ##安装v20.16.0(LTS)
brew install node ##安装最新版

安装Hexo

1
2
npm install hexo-cli -g        ##全局安装Hexo
hexo init blog ##初始化一个新的博客项目(默认在/user目录下)

简单解释各文件夹的作用
node_modules:依赖包
scaffolds:命令生成文章等的模板
source:自己写的博文以及各种默认页面都存放在这个文件夹下
themes:存放 Hexo 的主题
_config.yml:站点配置,~/blog文件夹里面的“_config.yml”是 站点 配置文件, ~/blog/theme/next里的是 主题 配置文件
package.json:项目所需模块项目的配置信息,后续安装插件如果使用“– save”则会将包的名称和版本信息添加到此文件里,卸载时也要注意加上“–save”

1
2
3
cd blog
npm install ##安装项目所需的依赖包
hexo server ##本地启动服务

访问 http://localhost:4000 ,此时您将看到 Hexo 的默认界面。接下来,我们就要开始为它挑选美观的主题和实用的插件,进行一番精心的“装修”了。

安装Next主题

注意:NexT的仓库地址经过了几次变化,请见NexT Repositories

Years Version Repository
2014 ~ 2017 v5 https://github.com/iissnan/hexo-theme-next
2018 ~ 2019 v6 ~v7 https://github.com/theme-next/hexo-theme-next
2020 v8 https://github.com/next-theme/hexo-theme-next

我一开始没弄清楚,用v7.8.0都弄得差不多了,才发现用的是老版本😭

在blog目录执行

npm install hexo-theme-next

打开站点配置文件,
找到 “theme” 将 “landscape” 改为 “next”

1
2
3
4
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: next

站点配置

关于站点配置文件的说明可以查看以下文章

  1. 官方文档
  2. 槐雪博客(推荐)
  3. reuixiy博客

注意:修改了站点配置后,需要先停止本地服务,再使用以下命令来重启服务,才能看到修改后的结果,而修改了主题配置可以按command+shift+R (macOS) 或 ctrl+F5 (Windows/Linux) 来强制刷新网页,也能立即看到修改后的效果。

1
hexo clean && hexo server

主题配置

切换主题

Next 主题自带四种样式,官方提供了预览
💟Muse 🔯Mist ♓️Pisces ♊️Gemini

挑选好自己喜欢的主题后打开站点配置文件,不要注释自己所选的样式,比如我选择“Mist”

1
2
3
4
5
# Schemes
#scheme: Muse
scheme: Mist
#scheme: Pisces
#scheme: Gemini

修改网站图标

将自己的图片放到 themes/next/source/images 文件夹下面然后修改文件名就可以了

1
2
3
4
5
6
favicon:
small: /images/favicon-16x16-next.png
medium: /images/favicon-32x32-next.png
apple_touch_icon: /images/apple-touch-icon-next.png
safari_pinned_tab: /images/logo.svg
#android_manifest: /manifest.json

菜单设置

将你需要的界面取消注释, || 后面的是font awesome图标,在这里可以找到你需要的

1
2
3
4
5
6
7
8
9
menu:
home: / || fa fa-home #首页
about: /about/ || fa fa-user #关于
tags: /tags/ || fa fa-tags #标签
categories: /categories/ || fa fa-th #分类
archives: /archives/ || fa fa-archive #归档
#schedule: /schedule/ || fa fa-calendar #日程表
#sitemap: /sitemap.xml || fa fa-sitemap #站点地图
#commonweal: /404/ || fa fa-heartbeat #404页面

选择需要的菜单后,需要在/blog目录下执行以下命令(以about界面为例)

1
hexo new page about

然后就可以在/blog/ource/about/index.md 里面编辑内容了

修改底部网站建立时间

把since后面改成建立网站的年份

1
2
3
footer:
# Specify the year when the site was setup. If not defined, current year will be used.
since: 2024

自定义网站底部的♥️

找到以下代码

1
2
3
4
5
6
7
8
# Icon between year and copyright info.
icon:
# Icon name in Font Awesome. See: https://fontawesome.com/icons
name: fa fa-heart ##fontawesome图标可自定义
# If you want to animate the icon, set it to true.
animated: true ##是否开启动态图标
# Change the color of icon, using Hex Code.
color: "#ff0000" ##颜色

隐藏底部 powered By Hexo / 强力驱动

将powered改为false

1
2
# Powered by Hexo & NexT
powered: false

或者打开themes/next/layout/_partials/footer.njk

1
2
3
4
5
6
{%- if theme.footer.powered %}
<div class="powered-by">
{%- set next_site = 'https://theme-next.js.org' if theme.scheme === 'Gemini' else 'https://theme-next.js.org/' + theme.scheme | lower + '/' %}
{{- __('footer.powered', next_url('https://hexo.io', 'Hexo') + ' & ' + next_url(next_site, 'NexT.' + theme.scheme)) }}
</div>
{%- endif %}

把这段代码首尾分别加上:,或者直接删除。也可修改其中的内容满足自己的需求
删除的方法来自这里

侧栏设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
sidebar:
# Sidebar position. Available values: left | right #侧栏的位置
position: left

# Sidebar width. #侧栏的宽度,注意修改对应的主题
# Applicable to Muse | Mist and mobile of Pisces | Gemini.
width_expanded: 320
# Applicable to desktop of Pisces | Gemini.
width_dual_column: 240

# Sidebar display. #侧栏显示何时展示(只对Muse | Mist两种风格有效)
# Applicable to Muse | Mist and mobile of Pisces | Gemini.
# Available values:
# - post 在文章页面(拥有目录列表)时显示,默认方式
# - always 在所有页面中都显示
# - hide 在所有页面中都隐藏(可以手动展开)
# - remove 完全移除侧边栏,包括侧边栏切换按钮。
display: post

# Sidebar padding in pixels. #边栏填充像素
padding: 18
# Sidebar offset from top menubar in pixels (only for Pisces | Gemini).
# 侧边栏与顶部菜单栏的偏移量,单位为像素(仅适用于 Pisces | Gemini)。
offset: 12

边栏头像

1
2
3
4
5
6
7
8
# Sidebar Avatar
avatar:
# Replace the default image and set the url here.
url: #/images/avatar.gif #如要启用,请取消注释并且填入头像的路径
# If true, the avatar will be displayed in circle.
rounded: false #是否开启圆角
# If true, the avatar will be rotated with the cursor.
rotated: false #光标移到头像上后头像是否旋转

添加联系方式

找到下面的代码,把自己需要添加的联系方式给取消注释,改成自己的链接,图标也可以自定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Social Links
# Usage: `Key: permalink || icon`
# Key is the link label showing to end users.
# Value before `||` delimiter is the target permalink, value after `||` delimiter is the name of Font Awesome icon.
social:
#GitHub: https://github.com/yourname || fab fa-github
#E-Mail: mailto:[email protected] || fa fa-envelope
#Weibo: https://weibo.com/yourname || fab fa-weibo
#Twitter: https://twitter.com/yourname || fab fa-twitter
#FB Page: https://www.facebook.com/yourname || fab fa-facebook
#StackOverflow: https://stackoverflow.com/yourname || fab fa-stack-overflow
#YouTube: https://youtube.com/yourname || fab fa-youtube
#Instagram: https://instagram.com/yourname || fab fa-instagram
#Skype: skype:yourname?call|chat || fab fa-skype

social_icons: #图标设置
enable: true
icons_only: false
transition: false

网页优化以及插件安装

文章添加阴影

打开/blog/themes/next/source/css/_common/components/post/index.styl (Next v8.2.0)将

1
2
3
4
5
6
.use-motion {
if (hexo-config('motion.transition.post_block')) {
.post-block, .pagination, .comments {
visibility: hidden;
}
}

修改为(注释可不加)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
.use-motion {
if (hexo-config('motion.transition.post_block')) {
.post-block{
visibility: hidden;
margin-top: 60px;
margin-bottom: 0px;
border-radius: 20px; ##边框圆角
padding: 25px; ##边距
-webkit-box-shadow: 0 0 3px rgba(128, 128, 128, .65);
-moz-box-shadow: 0 0 3px rgba(128, 128, 128, .65);
} .pagination, .comments {
visibility: hidden;
}
}

方法来自呼松涛的博客

此时你会发现首页的第一篇文章的边框上边距很大,但是第二篇是正常的,这时候使用浏览器开发者工具会发现,该边框的padding-top还是有80px,我也找不到这个代码在哪,所以曲线救国了

打开/blog/themes/next/source/css/_schemes/Mist/_posts-expand.styl 添加

1
2
3
.post-block:first-of-type {
padding-top: 25px;
}

这时你打开网页,就会发现边距合适了,但是用开发者工具查看,可以发现并没有把80px的代码去掉,只不过我们设置的优先级更高而已

调整首页文章边距

和上面是同一个文件,打开/blog/themes/next/source/css/_schemes/Mist/_posts-expand.styl
将120px,修改成合适的大小,我改为25px

1
2
3
.post-block:not(:first-of-type) {
margin-top: 120px;
}

方法来自呼松涛的博客

文章摘要设置

  1. 手动添加<!-- more -->(推荐)
  2. 手动在文章前面添加 description 同时在主题配置里面excerpt_description: true

此方法见官方文档

文章字数统计,预估阅读时长

这样的插件有几个“hexo-symbols-count-time”的README里面写比起他家的更好,懒得折腾就直接用这个了

首先安装插件

1
npm install hexo-symbols-count-time

然后在站点配置里面添加(下面是我的配置,自已想研究去看官方README吧)

1
2
3
4
5
6
7
8
9
symbols_count_time:
symbols: true
time: true
total_symbols: true
total_time: true
exclude_codeblock: false
awl: 3
wpm: 260
suffix: "mins."

再在主题配置里面

1
2
3
4
5
6
# Post wordcount display settings
# Dependencies: https://github.com/next-theme/hexo-word-counter
symbols_count_time:
separated_meta: true # 是否另起一行(true的话不和发表时间等同一行)
item_text_total: true # 页面底部统计数量前是否显示文字描述(站点总字数、站点阅读时长)
item_text_post: true # 首页文章统计数量前是否显示文字描述(本文字数、阅读时长)

阅读进度

我是设置成在网站的顶部有一个小蓝条

1
2
3
4
5
6
7
8
9
reading_progress:
enable: true
# Available values: left | right
start_at: left
# Available values: top | bottom
position: top
reversed: false
color: "#2ab1ff"
height: 2px

back2top 也有这样的功能

网页加载进度条

1
2
3
4
5
6
7
8
9
pace:
enable: true
# All available colors:
# black | blue | green | orange | pink | purple | red | silver | white | yellow
color: blue
# All available themes:
# big-counter | bounce | barber-shop | center-atom | center-circle | center-radar | center-simple
# corner-indicator | fill-left | flat-top | flash | loading-bar | mac-osx | material | minimal
theme: minimal

返回顶部

添加返回顶部的小按钮

1
2
3
4
5
6
back2top:
enable: true
# Back to top in sidebar.
sidebar: false
# Scroll percent label in b2t button.
scrollpercent: false

这个按纽竟然不是圆角,这肯定得改
修改back2top
打开/blog/themes/next/source/css/_common/components/back-to-top.styl

顶部找到

1
2
3
if (hexo-config('back2top.enable')) {
.back-to-top {
font-size: $b2t-font-size;

加上border-radius: 7px;

1
2
3
4
if (hexo-config('back2top.enable')) {
.back-to-top {
font-size: $b2t-font-size;
border-radius: 7px;

边栏按钮修改圆角

back2top都是圆角了,边栏按钮也得改
打开/blog/themes/next/source/css/_common/outline/sidebar/sidebar-toggle.styl

1
2
.sidebar-toggle {
bottom: $b2t-position-bottom-on + $sidebar-toggle-size + 5px;

底部加上 border-radius: 7px;

1
2
3
4
.sidebar-toggle {
bottom: $b2t-position-bottom-on + $sidebar-toggle-size + 5px;
border-radius: 7px;
height: $sidebar-toggle-inner-size;

网页夜间模式切换按钮

GitHub地址

安装

1
npm install hexo-next-darkmode --save

确保 NexT 主题原生的 darkmode 选项设置为 false:

1
2
3
# Close NexT's darkmode
darkmode: false

往 NexT 主题的 _config.yml 配置文件里添加以下内容,下面的是我的配置,由于切换的按钮太丑了,自己又不会调,也不会把他弄到菜单栏,所以就用上了自动根据设备切换深色模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Darkmode JS
# For more information: https://github.com/rqh656418510/hexo-next-darkmode, https://github.com/sandoche/Darkmode.js
darkmode_js:
enable: false
bottom: '24px' # default: '32px'
right: '24px' # default: '32px'
left: 'unset' # default: 'unset'
time: '0.4s' # default: '0.3s'
mixColor: 'transparent' # default: '#fff'
backgroundColor: 'transparent' # default: '#fff'
buttonColorDark: '#2B2727' # default: '#100f2c'
buttonColorLight: '#F2EECF' # default: '#fff'
isActivated: false # default false
saveInCookies: true # default: true
label: '🌓' # default: ''
autoMatchOsTheme: true # default: true
libUrl: # Set custom library cdn url for Darkmode.js

文章加密

1.手动加密,方法来自这里不是很安全,所以建议使用下面的插件
2.插件的官方地址,插件还有很多功能是我没有用到的,推荐看官方文档配置

安装

1
npm install --save hexo-blog-encrypt

只想简单使用直接在文章头添加以下信息

1
2
3
4
5
6
7
8
9
10
11
---
title: Hello World
tags:
- 作为日记加密
date: 2016-03-30 21:12:21
password: mikemessi
abstract: 有东西被加密了, 请输入密码查看.
message: 您好, 这里需要密码.
wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试.
wrong_hash_message: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.
---

每一篇文章都这样配置太麻烦了,所以在 站点 配置添加以下内容

1
2
3
4
5
6
7
8
  # Security
encrypt: # hexo-blog-encrypt
silent: true
theme: wave #官方文档有主题示例
abstract: 有东西被加密了,需要密码才能继续阅读。
message: 嘿,这里需要密码。
wrong_pass_message: 这个密码看着不太对,请再试试。
wrong_hash_message: 抱歉, 当前文章不能被校验, 不过您还是可以看看解密后的内容。

官方的主题示例

default
blink
shrink
flip
up
surge
wave
xray

使用该插件,加密文章解锁后文章的目录是不会显示的,这是一个毛病,有博主研究出了不是非常完美的方法,我在Next v7.80还可以使用,但是v8.2.0就不行了有兴趣的朋友自己去看看吧 地址在这

标签云

我没有使用这个插件,使用方法就见官方的吧

插件GitHub地址
作者博客地址

更改选中颜色

网站处于深色模式时,选中的字体不明显,下面是优化方法
主题文件取消 style: source/_data/styles.styl注释
在/blog/source/_data/styles.styl创建对应文件
添加以下代码,颜色可自行修改

1
2
3
4
5
6
7
8
::selection {
background: #348de0;
color: #ffffff;
}
::-moz-selection {
background: #348de0;
color: #ffffff;
}

自定义404界面

终端输入

1
hexo new page 404

将会在source目录下生成一个404文件夹,其中有一个index.md文件,这个文件其实就相当于是404.html了,自行修改里面内容吧,记得信息头加上permalink: /404

网站标题自动变化

当窗口不再处于焦点时,更改为不同的标题

  1. 通过插件实现,v8.2.0失效,GitHub地址
  2. 手动修改,方法来自这里

打开/blog/themes/next/source/js,新建js文件,我以change.js为例,下面是我的配置的代码,
网站图标记得修改,我是在PS把图标的颜色去掉了,注意图标路径

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
var OriginTitle = document.title;
var titleTime;
var crashedIcon;

if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
crashedIcon = "/images/remove.png";
} else {
crashedIcon = "/images/remove.png";
}

document.addEventListener('visibilitychange', function () {
if (document.hidden) {
var icons = document.querySelectorAll("link[rel='icon']");
for (var i = 0; i < icons.length; i++) {
icons[i].href = crashedIcon;
}
document.title = '(°A°`) 不要走!再看看嘛!';
clearTimeout(titleTime);
} else {
var icons = document.querySelectorAll("link[rel='icon']");
for (var i = 0; i < icons.length; i++) {
icons[i].href = "/images/rainbow.ico";
}
document.title = '◝(⁰▿⁰)◜ 欢迎回来!' + OriginTitle;
titleTime = setTimeout(function () {
document.title = OriginTitle;
}, 2000);
}
});

打开主题配置文件去掉 bodyEnd: source/_data/body-end.njk的注释
同时在对应路径创建这个文件 /blog/source/_data/body-end.njk ,添加

1
2
<!--崩溃欺骗-->
<script type="text/javascript" src="/js/change.js"></script>

修改文章底部的#号的标签

1.手动修改,方法来自这里
修改文件/blog/themes/next/layout/_macro/post.njk
找到 rel=“tag”>#
将 # 换成 <i class="fa fa-tag"></i>

1
2
3
4
5
6
7
8
{%- if post.tags and post.tags.length %}
{%- set tag_indicate = '<i class="fa fa-tag"></i>' if theme.tag_icon else '<i class="fa fa-tag"></i>' %}
<div class="post-tags">
{%- for tag in post.tags.toArray() %}
<a href="{{ url_for(tag.path) }}" rel="tag">{{ tag_indicate }} {{ tag.name }}</a>
{%- endfor %}
</div>
{%- endif %}
  1. 打开主题文件,tag_icon: true
1
2
# Use icon instead of the symbol # to indicate the tag at the bottom of the post
tag_icon: true

代码块

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
codeblock:
# Code Highlight theme
# All available themes: https://theme-next.js.org/highlight/
theme:
light: base16/synth-midnight-terminal-light
dark: atom-one-dark
prism:
light: prism
dark: prism-tomorrow
# Add copy button on codeblock
copy_button:
enable: true
# Available values: default | flat | mac
style: mac
# Fold code block
fold:
enable: false
height: 500

字体

用了思源宋体

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
font:
enable: true

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

# 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>.
global:
external: true
family: Noto Serif SC
size:

# Font settings for site title (.site-title).
title:
external: true
family: Fira Code
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: Fira Code, Noto Serif SC

添加CC协议

防君子不防小人

1
2
3
4
5
6
7
8
9
10
11
12
# Creative Commons 4.0 International License.
# See: https://creativecommons.org/about/cclicenses/
creative_commons:
# Available values: by | by-nc | by-nc-nd | by-nc-sa | by-nd | by-sa | cc-zero
license: by-nc-sa
# Available values: big | small
size: small
sidebar: false
post: true
# You can set a language value if you prefer a translated version of CC license, e.g. deed.zh
# CC licenses are available in 39 languages, you can find the specific and correct abbreviation you need on https://creativecommons.org
language: zh-CN

网站搜索

GitHub地址

安装

1
npm install hexo-generator-searchdb

站点配置添加

1
2
3
4
5
search:
path: search.xml
field: post
content: true
format: html

主题配置

1
2
3
4
5
6
7
8
9
10
11
# Local Search
# Dependencies: https://github.com/next-theme/hexo-generator-searchdb
local_search:
enable: true
trigger: auto #若为manual, 通过按下enter键或者点击搜索按钮触发搜索
# Show top n results per article, show all results by setting to -1
top_n_per_article: 1
# Unescape html strings to the readable one.
unescape: false
# Preload the search data when the page loads.
preload: false

不蒜子网站统计

本地预览时,访问量不正常,部署后才可用

1
2
3
4
5
6
7
8
busuanzi_count:
enable: true
total_visitors: true
total_visitors_icon: fa fa-user
total_views: true
total_views_icon: fa fa-eye
post_views: true
post_views_icon: far fa-eye

自定义文字,打开/blog/themes/next/layout/_partials/footer.njk
下面是我的配置,修改中文就可以

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
{%- if theme.busuanzi_count.enable %}
<div class="busuanzi-count">
{%- if theme.busuanzi_count.total_visitors %}
<span class="post-meta-item" id="busuanzi_container_site_uv">
<span class="post-meta-item-icon">
<i class="{{ theme.busuanzi_count.total_visitors_icon }}"></i>
</span>
<span class="site-uv" title="{{ __('footer.total_visitors') }}">
来过 <span id="busuanzi_value_site_uv"></span> 人
</span>
</span>
{%- endif %}

{%- if theme.busuanzi_count.total_views %}
<span class="post-meta-item" id="busuanzi_container_site_pv">
<span class="post-meta-item-icon">
<i class="{{ theme.busuanzi_count.total_views_icon }}"></i>
</span>
<span class="site-pv" title="{{ __('footer.total_views') }}">
读了 <span id="busuanzi_value_site_pv"></span> 次
</span>
</span>
{%- endif %}
</div>
{%- endif %}

添加网站运行时间

打开blog/themes/next/layout/_partials/footer.njk(修改底部信息的顺序也在这)
运行时间精确到天,底部信息居的代码中是叫GPT写的

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
<script>
function createtime() {
var now = new Date();
var grt = new Date("7/30/2024 00:00:00"); // 设置开始日期
var days = Math.floor((now - grt) / 1000 / 60 / 60 / 24); // 计算已运行天数
document.getElementById("timeDate").innerHTML = "已运行 " + days + " 天 ";
}
createtime(); // 初始调用
setInterval(createtime, 86400000); // 每天更新一次(86400000 毫秒 = 24 小时)
</script>

<style>
.footer-container {
text-align: center; /* 保证内容居中 */
}

.footer-content {
display: flex; /* 使用flex布局 */
justify-content: center; /* 水平居中对齐 */
align-items: center; /* 垂直居中对齐 */
}

.copyright,
.runtime {
margin: 0 10px; /* 添加左右间距 */
}
</style>

打开/blog/themes/next/source/css/_common/outline/footer/index.styl

底部添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.footer-container {
text-align: center;
margin: 0px;
padding: 0px;
background-color: transparent; /* 可选:页脚背景颜色 */
}

.footer-container .beian,
.footer-container .copyright,
.footer-container .wordcount,
.footer-container .busuanzi-count,
.footer-container .powered-by {
display: block;
margin: 0px;
}

归档页面每页文章数目

站点配置找到per_page: 10后面的数字就是每一页的文章数

小插件

自动添加空格

1
2
3
4
# Automatically insert whitespace between CJK and half-width characters.
# For more information: https://github.com/vinta/pangu.js
# Server-side plugin: https://github.com/next-theme/hexo-pangu
pangu: true

在 hexo 生成后删除不必要的文件

1
2
# Remove unnecessary files after hexo generate.
minify: true

网站优化加速

1
2
3
# Easily enable fast Ajax navigation on your website.
# For more information: https://github.com/next-theme/pjax
pjax: true

部署到GitHub Pages

方法来自这里

注意创建项目时
{user_name}.github.io, 其中{user_name}必须与你的用户名一样, 这是github pages的特殊命名规范

如果不想这样弄也是可以的,请见这篇文章,我没有去实操

生成ssh key

ssh-keygen -t rsa -C [email protected]

改成你的邮箱,之后会要求确认路径和输入密码, 懒得管就一路回车. 成功的话会在~/下生成.ssh文件夹, 进去, 打开id_rsa.pub, 复制里面的key

首先是Github, 登录Github, 右上角 头像 -> Settings —> SSH nd GPG keys —> New SSH key . 把公钥粘贴到key中, 填好title并点击 Add SSH key

验证成功

ssh -T [email protected]

如果是第一次的会提示是否continue, 输入** yes** 就会看到:
You’ve successfully authenticated, but GitHub does not provide shell access .
这就表示已成功连上github

安装部署插件

1
npm install hexo-deployer-git --save

站点配置

1
2
3
deploy:
type: git
repo: [email protected]:Username/Username.github.io.git,master

在我的环境下,只有这样的写法才能部署成功

下面这个方法也有很多大佬提过,但是我就是部署不上,所以就弃用了

1
2
3
4
deploy:
type: git
repo: https://github.com/Username/Username.github.io.git
branch: master

部署至Github Pages

1
hexo clean && hexo generate && hexo deploy

这样就大功告成了

End

30号搭建完网站,9号才开始写总结,14号才写完,一直拖导致很多细节都忘记了,搭博客之前看到有人说搭博客比写博客好玩,看来还真有点道理。及时记录挺重要的。

博客还有很多不完善之处,这里把能想到的列出来,之后慢慢弄吧

  • 评论系统
  • 优化cdn
  • 深浅色切换按钮
  • 图床,长期使用CF R2,2024年12月7日

搭建网站看了很多很多大佬的教程,感谢大佬们的无私分享
1.https://blog.csdn.net/as480133937/article/details/100138838
2.http://home.ustc.edu.cn/~liujunyan/blog/hexo-next-theme-config/
3.https://www.itfanr.cc/2021/04/16/hexo-blog-article-encryption/
4.https://blog.csdn.net/jiunian_2761/article/details/122908619
5.https://hexo-next.readthedocs.io/zh-cn/latest/
6.https://hst15701102464.github.io/2022/02/17/next%E4%B8%BA%E9%A6%96%E9%A1%B5%E6%96%87%E7%AB%A0%E6%B7%BB%E5%8A%A0%E8%BE%B9%E6%A1%86%E9%98%B4%E5%BD%B1-%E7%BB%9D%E5%AF%B9%E6%9C%89%E6%95%88/
7.https://io-oi.me/tech/hexo-next-optimization/
8.https://www.lvxuefei.top/%E5%88%A9%E7%94%A8Hexo-Next%E6%90%AD%E5%BB%BA%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%EF%BC%88%E4%B8%89%EF%BC%89-%E4%BC%98%E5%8C%96/
9.https://www.techgrow.cn/posts/abf4aee1.html#Next-8-x-%E8%87%AA%E5%8A%A8%E6%B7%BB%E5%8A%A0%E5%8F%AF%E5%88%87%E6%8D%A2%E7%9A%84%E6%9A%97%E9%BB%91%E6%A8%A1%E5%BC%8F
10.https://lanlan2017.github.io/blog/63f5df0e/#%E5%88%A0%E9%99%A4landscape%E4%B8%BB%E9%A2%98%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6
11.https://theme-next.js.org/pisces/
12.https://siriusq.top/Next-8-0-%E5%8D%87%E7%BA%A7%E6%97%A5%E5%BF%97.html?highlight
13.https://vic.kim/2019/05/23/Hexo%E5%8D%9A%E5%AE%A2%E5%BB%BA%E7%AB%8B%E6%A0%87%E7%AD%BE%E4%BA%91%E5%8F%8A%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA/
14.https://notes.boshkuo.com/docs/Hexo/Advance/hexo-advanced-supplementary-1
15.https://yangbingdong.com/2017/build-blog-hexo-base/#GitHub
16.https://blog.luzy.top/posts/456645515/
17.https://www.iszy.cc/posts/a8mr7k/
18.https://blog.csdn.net/xingyuzhongxuan/article/details/125392822