【Hexo博客系列】No.2 美化Hexo博客,教你如何安装和美化Hexo博客 - 使用安知鱼主题进行个性化配置,涵盖安装、设置、标签页生成及本地搜索

本文演示使用基于hexo-theme-butterfly修改的安知鱼主题(简洁、美丽的静态Hexo主题),完成Hexo博客的美化配置,包含主题安装、基础设置、标签页/分类页生成及本地搜索功能搭建。

1. 安装主题

1.1 Git 安装

在博客根目录执行以下命令,安装最新版主题及必需渲染器:

1
2
3
4
5
# 安装安知鱼主题
git clone -b main https://github.com/anzhiyu-c/hexo-theme-anzhiyu.git themes/anzhiyu

# 安装pug及stylus渲染器(首次使用必需)
npm install hexo-renderer-pug hexo-renderer-stylus --save

1.2 应用主题

修改Hexo主配置文件_config.yml,将主题指定为anzhiyu

1
theme: anzhiyu

1.3 覆盖配置

覆盖配置可将主题配置放在anzhiyu目录外,避免更新主题时丢失自定义配置,操作如下:

  • Linux系统:在博客根目录执行命令
    1
    cp -rf ./themes/anzhiyu/_config.yml ./_config.anzhiyu.yml
  • Windows系统:手动将/themes/anzhiyu/_config.yml复制到博客根目录,并重命名为_config.anzhiyu.yml

注意事项:

  1. 存在于_config.anzhiyu.yml的配置优先级更高,修改原_config.yml的主题配置无效;
  2. 每次更新主题可能存在配置变更,需关注更新说明,手动同步_config.anzhiyu.yml
  3. 查看覆盖配置是否生效,可执行hexo g --debug查看命令行输出;
  4. 若需将某些配置覆盖为空,不可删除主键,否则无法生效。

1.4 配置主题与主站配置文件

主题部署完成后,可通过以下命令进行本地预览或推送更新:

1
2
3
4
5
# 本地预览(清除缓存→生成静态文件→启动本地服务)
hexo cl; hexo s

# 推送更新上线(清除缓存→生成静态文件→部署)
hexo cl; hexo g; hexo d

1.5 生成标签页和分类页

生成标签页

  1. 执行命令创建标签页:
    1
    hexo new page tags
  2. 找到source/tags/index.md文件,添加type: "tags"配置:
    1
    2
    3
    4
    5
    6
    7
    ---
    title: 标签
    date: 2024-07-05 03:36:02
    type: "tags"
    comments: false
    top_img: false
    ---

生成分类页

  1. 执行命令创建分类页:
    1
    hexo new page categories
  2. 找到source/categories/index.md文件,添加type: "categories"配置:
    1
    2
    3
    4
    5
    6
    7
    ---
    title: 分类
    date: 2024-07-05 03:36:48
    aside: false
    top_img: false
    type: "categories"
    ---

后续修改博客参数,只需配置_config.yml(主站配置)和_config.anzhiyu.yml(主题配置)即可。

2. 配置文章模版

/scaffolds目录下包含博客核心模版文件,可根据需求自定义:

2.1 post.md(新建博文模版)

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
---
title: {{ title }} #【必需】页面标题
date: {{ date }} #【必需】页面创建日期
updated: #【可选】页面更新日期
tags: #【可选】文章标签
categories: #【可选】文章分类
keywords: #【可选】文章关键字
description: #【可选】文章描述
top: # 1 置顶(数值越大优先级越高)
top_img: #【可选】文章顶部图片
comments: #【可选】显示文章评论模块(默认 true)
cover: https://img.090227.xyz/file/ae62475a131f3734a201c.png #【可选】文章缩略图(无top_img时顶部显示,可设为false/图片地址/留空)
toc: #【可选】显示文章TOC(默认为主题配置中toc的enable值)
toc_number: #【可选】显示toc_number(默认为主题配置中toc的number值)
toc_style_simple: #【可选】显示toc简洁模式
copyright: #【可选】显示文章版权模块(默认为主题配置中post_copyright的enable值)
copyright_author: #【可选】版权模块作者名
copyright_author_href: #【可选】版权模块作者链接
copyright_url: #【可选】版权模块文章链接
copyright_info: #【可选】版权模块声明文字
mathjax: #【可选】显示mathjax(仅当主题配置mathjax.per_page: false时需配置,默认false)
katex: #【可选】显示katex(仅当主题配置katex.per_page: false时需配置,默认false)
aplayer: #【可选】加载aplayer的js和css(参考音乐配置)
highlight_shrink: #【可选】代码框是否展开(true/false,默认为主题配置中highlight_shrink的值)
aside: #【可选】显示侧边栏(默认true)
swiper_index: 10 #【可选】首页轮播图索引(数字越小越靠前)
top_group_index: 10 #【可选】首页右侧卡片组索引(数字越小越靠前)
ai: #【可选】文章AI摘要
background: "#fff" #【可选】文章主色(必需6位16进制,如#ffffff,不可写#fff)
---

<div class="video-container">
[up主专用,视频内嵌代码贴在这]
</div>
<style>
.video-container {
position: relative;
width: 100%;
padding-top: 56.25%; /* 16:9 宽高比(height/width = 9/16 * 100%) */
}
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
</style>

2.2 page.md(新建标签页模版)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
---
title: {{ title }} #【必需】页面标题
date: {{ date }} #【必需】页面创建日期
type: #【必需】页面类型(标签/分类/关于/音乐馆/友情链接/相册/相册详情/朋友圈/即刻)
updated: #【可选】页面更新日期
comments: #【可选】显示页面评论模块(默认 true)
description: #【可选】页面描述
keywords: #【可选】页面关键字
top_img: https://img.090227.xyz/file/ae62475a131f3734a201c.png #【可选】页面顶部图片
mathjax: #【可选】显示mathjax(仅当主题配置mathjax.per_page: false时需配置,默认false)
katex: #【可选】显示katex(仅当主题配置katex.per_page: false时需配置,默认false)
aside: #【可选】显示侧边栏(默认 true)
aplayer: #【可选】加载aplayer的js和css(参考音乐配置)
highlight_shrink: #【可选】代码框是否展开(true/false,默认为主题配置中highlight_shrink的值)
top_single_background: #【可选】部分页面的顶部模块背景图片
---

3. 更多功能

3.1 新建文章

通过命令快速创建博文或标签页:

1
2
3
4
5
# 新建博文
hexo new 这是一篇新的博文

# 新建标签页
hexo new page 新建的标签页

3.2 文章置顶

  1. 安装置顶插件:
    1
    npm install hexo-generator-topindex --save
  2. 在需置顶的文章md文件中添加top参数(数值越大,置顶优先级越高):
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ---
    title: 每天一个linux命令
    date: 2017-01-23 11:41:48
    top: 1 # 1为置顶,多个置顶文章时数值越大越靠前
    categories:
    - 运维
    tags:
    - linux命令
    ---

3.3 开启本地搜索

  1. 安装搜索插件:
    1
    npm install hexo-generator-search --save
  2. _config.anzhiyu.yml(主题配置文件)中添加以下配置:
    1
    2
    3
    4
    local_search:
    enable: true # 是否开启本地搜索
    preload: false # 预加载(开启则进入网页自动加载搜索文件,关闭则点击搜索按钮后加载)
    CDN: # 搜索文件的CDN地址(默认使用本地链接)

本地搜索参数解释

参数 解释
enable 是否开启本地搜索
preload 预加载,开启后进入网页自动加载搜索文件;关闭则点击搜索按钮后加载
CDN 搜索文件的CDN地址(默认使用本地链接,无需配置则留空)

3.4 添加任意文件

若需在网站根目录添加文件(如ads.txt用于站长验证),直接将文件放入博客根目录的/source文件夹即可。

4. 参考资料

  1. https://docs.anheyu.com/initall.html
  2. https://www.fomal.cc/posts/4aa2d85f.html
  3. https://github.com/anzhiyu-c/hexo-theme-anzhiyu/blob/dev/README.md?plain=1
  4. https://blog.csdn.net/COCO56/article/details/103840966

标签统计

  • Hexo 2
  • 博客 3
  • 博客搭建 2
  • 静态网站 2
  • 个人网站 2
  • Markdown 2