搭建Hexo博客平台

前言

这里浅浅记录一下博客平台的创建步骤

前期准备

环境配置

  • 系统:Windows10家庭版
  • Node.js: 22.12.0
  • npm:10.9.2
  • Hexo-cli:4.3.2
  • hexo-theme-next:8.21.1

相关链接

搭建过程

安装Hexo

  1. 安装hexo-cli(全局):npm install -g hexo-cli
  2. 创建一个新的文件夹,并确保里面没有任何文件
  3. 初始化hexo。在新文件夹中输入命令:hexo init
  4. 安装别的依赖文件:npm install

配置Hexo

主题安装

由于之前的博客平台使用的是Next主题,因此进行继承,安装Next主题。

安装命令:npm install hexo-theme-next

在Hexo的_config.yml文件中找到theme,将其修改为next

1
2
## Themes: https://hexo.io/themes/
theme: next

与通过GitHub下载安装主题包不同的是,通过这个方法安装的主题包,会存储在node_modules这一文件夹下,名字为hexo-theme-next,并不是简单存储在theme/next

主题配置

根据之前的博客内容进行整合,同时引入Waline作为评论平台。这里为了篇幅方便不再进行赘述,若想查看详细的配置文件说明移步:Next主题配置说明(这是张饼,应该没人想看,没人想看就不更了)

Hexo配置

同理,根据之前的博客平台信息进行整合,详细配置文件说明移步:Hexo配置说明

插件安装

搜索插件安装

教程链接

npm install hexo-generator-searchdb安装

在Hexo配置文件中添加

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

在Next主题配置文件中添加

1
2
3
4
5
6
7
8
9
10
# Local search
# Dependencies: https://github.com/next-theme/hexo-generator-searchdb
local_search:
enable: true
# 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

博文加密插件安装

官方教程

npm install --save hexo-blog-encrypt输入命令安装

在Hexo配置文件中添加配置信息:

1
2
3
4
5
6
7
8
9
# Security
encrypt: # hexo-blog-encrypt
abstract: 有东西被加密了, 请输入密码查看.
message: 您好, 这里需要密码.
tags:
- {name: tagName, password: 密码A}
- {name: tagName, password: 密码B}
wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试.
wrong_hash_message: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.

尾言

npm warn deprecated cuid@2.1.8

在更新Hexo版本的时候发现有如下提示:

npm warn deprecated cuid@2.1.8: Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead.

经检查后发现是Hexo所使用的cuid模块过时了,通过询问了下GPT,GPT给出的答复是cuidcuid2相似,但后者更改了有些实现方式,同时查看为什么将cuid置于过时,发现原因是可能会造成隐私泄露。但作为一个个人博客系统,没有隐私防护需求😂并且为防止Hexo未进行相关更改,盲目更换依赖包容易导致程序报错为保证Hexo的正常运行emmm,因此决定不管他

Next主题的两个仓库问题

简单来说,问题就是 theme-next 团队的 owner - Ivan Nginx 始终拒绝向其它任何团队成员提供足够的权限,且 owner 本人自 2019 年 10 月起已连续半年不在线,导致其它活跃的团队成员无法管理仓库,也无法邀请新的成员。
由于对 theme-next 团队的未来不抱有期望,我作为 theme-next 的主要贡献者,自 2020 年 4 月起停止为旧的仓库贡献代码,并创建了新的组织,以确保维护工作正常进行。

https://github.com/next-theme/hexo-theme-next/issues/4#issuecomment-626205848

参考资料