
hexo备忘
Hexo 备忘
我的配置
- Hexo 版本: hexo-cli: 4.3.2, hexo: 7.3.0(当前最新)
- Node.js 版本: 22.16.0
- Git 版本: 2.47.0.sindows.2
- PNPM 版本: 10.12.4
- Windows 版本: 11
安装 Node.js
-
在 官网 安装 LTS 版本,电脑一般来说内存足够直接在 C 盘即可,当然,换路径也可以,我反正正常下载换路径,没什么问题。
-
安装完成后,检查是否安装成功。在键盘按下 win + R 键,输入
CMD
,然后回车,打开 CMD 窗口,执行node -v
命令,看到版本信息,则说明安装成功。
安装 Git
在 官网 安装最新版本的 64-bit Git for Windows Setup
安装包。
安装完成后,在命令行输入 git --version
,如果显示版本号,则说明安装成功。
常用命令
git config -l //查看所有配置 |
配置 Git 用户名和邮箱
git config --global user.name "你的用户名" |
安装 包管理器
安装 npm 为一切的基石,一般来说,你安装了 node,也相当于你安装了 npm,通过一下命令来验证:
npm -v |
修改 npm 源。npm 下载各种模块,默认是从国外服务器下载,速度较慢,建议配置成淘宝镜像。打开 CMD 窗口,运行如下命令:
npm config set registry https://registry.npm.taobao.org |
安装 pnpm
pnpm 是一个快速、节省磁盘空间的包管理器,类似于 npm 和 yarn。安装 pnpm 可以通过以下命令:
npm install -g pnpm |
为什么选择 pnpm?因为它的安装速度快,依赖管理更高效,且相对于 npm,我使用 npm 容易失败且慢,pnpm 给我的体验更好。
安装 Hexo
- 在 Git BASH 输入如下命令安装 Hexo:
pnpm install -g hexo-cli |
- 安装完后输入
hexo -v
验证是否安装成功。
Github配置
上述操作是前提,接下来是配置 Github。
注册 github 就不说了,很基础的东西,连我个代码小白都懂就不多说了。
创建仓库
- 登录 GitHub,点击右上角的
+
号,选择New repository
。 - 填写仓库名称,建议使用
<username>.github.io
格式(例如:yourusername.github.io
),这样可以直接作为个人主页。
这里我不准备直接使用常规的 hexo deploy
命令来部署到 GitHub Pages,因为当你的文章一多,生成时间就会繁琐,这里的建议是使用 Github Actions
来自动部署。
- 首先要创建一个放置源码的私有仓库,以下称之为
hexo-source
, - 然后要生成一个 Github 密钥:
访问 Github-> 头像(右上角)-> Settings-> Developer Settings-> Personal access tokens-> generate new token, 创建的 Token 名称随意,但必须勾选 repo 项 和 workflows 项。
点击 链接 前往生成
!!! token 只会显示这一次,之后将无法查看,所以务必保证你已经记录下了 Token。之后如果忘记了就只能重新生成重新配置了。
- 在
hexo-source
仓库中的设置里点击设置 -> action -> General -> 工作流程权限- 勾选
Read and write permissions
,并且勾选Allow <span style="background:#FF0000;"></span>all actions and reusable workflows
。
- 勾选
- 在设置里 -> Secrets and variables -> Actions -> New repository secret 添加
GITHUBTOKEN
:放置你刚才生成的 Token。
上述是前置条件,接下来要先部署 hexo,你才好继续下一步。
初始化 Hexo
- 在本地新建一个文件夹,例如
hexo-solitude
。 - 这里我是用的是 vscode 打开该文件夹,然后在终端输入以下命令来初始化 Hexo:
hexo init (项目名称) |
我一般都不填,直接在文件下下就可以开始,如果你添加了项目名称,那么下一步就是:
cd (项目名称) |
- 安装依赖包:
pnpm install |
然后就是选择你想要的主题,这里我使用的是Solitude,具体的配置不细讲,我只讲一部分:
首先就是基本的安装,这里还是选择git clone
没有别的原因,主要还是会改点源码,不想改的直接pnpm下载即可:
// git安装 |
然后在_config.yml
里修改成:
theme: solitude |
配置
下列代码是我的备忘:
# Hexo Configuration |
博客的其他修改基本就是来自教程和一些博主的网站。
插件
- 基础依赖
hexo-renderer-pug
pnpm i hexo-renderer-pug |
- 字数统计
hexo-wordcount
pnpm i hexo-wordcount |
配置里修改:
# --------------------------- start --------------------------- |
- 数学公式 卸载
hexo-render-marked
npm un hexo-renderer-marked |
安装 hexo-renderer-markdown-it
katex
@renbaoshuo/markdown-it-katex
pnpm i hexo-renderer-markdown-it katex @renbaoshuo/markdown-it-katex |
配置里修改
# --------------------------- start --------------------------- |
添加以下内容到 _config.yml
markdown: |
开启配置项
# --------------------------- start --------------------------- |
- PWA 安装 hexo-swpp 和 swpp-backends 插件
在博客根目录执行
pnpm i hexo-swpp |
开启配置
# 大约在773行 |
在_config.yml
里添加swpp配置
swpp: |
在 source
目录中创建 manifest.json
文件
{ |
在博客根目录创建一个 sw-rules.js
文件
module.exports.config = { |
- hexo-deploy-git 提交到git的插件
pnpm i hexo-deploy-git --save |
- hexo-generator-feed hexo的rss插件
pnpm i hexo-generator-feed --save |
- hexo 的短链接:
hexo-abbrlink
pnpm i hexo-abbrlink --save |
在_config.yml
里修改:
permalink: posts/:abbrlink/ |
添加:
# abbrlink config |
- 博客的sitemap :
hexo-generator-sitemap
pnpm i hexo-generator-sitemap --save |
在_config.yml
里添加配置:
sitemap: |
- 使用algolia搜索 :
hexo-algoliasearch
- 注册algolia:
注册地址:dashboard.algolia.com/users/sign_up
- 创建应用:
注册成功后创建应用:dashboard.algolia.com/account/plan/create?from=dashboard
- search -> configure -> index添加index_name即可
在博客执行命令:
pnpm i hexo-algoliasearch --save |
_config.yml
里添加
algolia: |
!!!配置完成后记得运行 hexo clean
在hexo g
后实行下列代码:
hexo algolia |
- **hexo-safego**安全跳转插件
使用该插件之前,需要先安装 cheerio
,cheerio
是一个轻量级的库,用于在服务器端快速、灵活地实现 jQuery 核心功能。在 hexo-safego
插件中,cheerio
被用来解析和操作生成的静态 HTML 内容,类似于在浏览器中使用 jQuery 处理 DOM 元素。这使得插件能够在生成静态页面时,处理和替换外部链接,增强博客的安全性,而不需要在客户端引入 jQuery。Hexo 一般都有这个插件,可以在 node_modules
查看,如果没有,请先执行:
pnpm i cheerio --save |
然后即可安装该插件:
pnpm i hexo-safego --save |
在hexo
根目录的_config.yml
文件中添加以下配置:
# hexo-safego安全跳转插件 |
- hexo的追番页面:hexo-bilibili-bangumi
pnpm i hexo-bilibili-bangumi --save |
在_config.yml
配置:
bangumi: # 追番设置 |
还在更新中。。。
Github action配置
承接段落的继续吧,未来会在出水一期。
接下来就是创建一个私有仓库,根据大佬的文章,是为了保护Token,见仁见智。
这个私有仓库的建立是存储Hexo博客代码,如果你要使用Qexo
,这也是必不可少的!
创建完成后,需要把博客的源码 push 到这里。首先获取远程仓库地址,此处虽然 SSH 和 HTTPS 均可。SSH 在绑定过 ssh key 的设备上无需再输入密码,HTTPS 则需要输入密码,但是 SSH 偶尔会遇到端口占用的情况。请自主选择。
这里之所以是私有仓库,是因为在接下来的配置中会用到 Token
,如果 Token
被盗用,别人可以肆意操作你的 github 仓库内容,为了避免这一风险,才选择的博客源码闭源。
配置 Github Action
- 在
[Blogroot]
新建.github
文件夹,注意开头是有个.
的。然后在.github
内新建workflows
文件夹,再在workflows
文件夹内新建autodeploy.yml
,在[Blogroot]/.github/workflows/autodeploy.yml
里面输入
# 当有改动推送到 main 分支时,启动 Action |
-
首先把Token直接放在仓库的文件里还是不太好。
-
像我这种在本地搞的,推不到仓库里,因为这里的token不能直接上传,我尝试过把
token:
改成token: ${{ servets.GH_token }}
,但是依旧有各种问题,相反使用了店长的代码后,就大差不差,询问AI后就得到目前的代码,也就可以正式上传了。(无拉踩的意思) -
之后需要自己到仓库的 Settings->Secrets->actions 下添加环境变量,变量名参考脚本中出现的,依次添加。
重新设置远程仓库和分支
- 删除或者先把
[Blogroot]/themes/solitude/.git
移动到非博客文件夹目录下,原因是主题文件夹下的.git
文件夹的存在会导致其被识别成子项目,从而无法被上传到源码仓库。 - 在博客根目录
[Blogroot]
路径下运行指令:
git init #初始化 |
- 添加屏蔽项
因为能够使用指令进行安装的内容不包括在需要提交的源码内,所有我们需要将这些内容添加到屏蔽项,表示不上传到 github 上。这样可以显著减少需要提交的文件量和加快提交速度。打开[Blogroot]/.gitignore
,输入以下内容:
.DS_Store |
如果不是solitude
主题,记得替换最后一行内容为你自己当前使用的主题。
4. 之后再运行 git 提交指令,将博客源码提交到 github 上。
git add . |
- 此时你的主题文件夹若已经被正常上传,并且你也添加了主题文件夹下的.git 文件夹的屏蔽项。那你可以考虑把第二步移走或删除的
.git
放回来,用作以后升级。(不禁怀疑真的有人会去用这个方式来升级吗)
- 添加屏蔽项
因为能够使用指令进行安装的内容不包括在需要提交的源码内,所有我们需要将这些内容添加到屏蔽项,表示不上传到 github 上。这样可以显著减少需要提交的文件量和加快提交速度。
打开[Blogroot]/.gitignore
,输入以下内容:
.DS_Store |
如果不是 solitude
主题,记得替换最后一行内容为你自己当前使用的主题。
- 提交源码到私有仓库
[SourceRepo]
在博客根目录[Blogroot]
下启动终端,使用 git 指令重设仓库地址。这样在新建仓库,我们仍旧可以保留珍贵的 commit history,便于版本回滚。
git remote rm origin # 删除原有仓库链接 |
- 可能遇到的 bug
因为 solitude 主题文件夹下的.git 文件夹的存在,那么主题文件夹会被识别子项目。从而无法被上传到源码仓库。若是遇到添加屏蔽项,但是还是无法正常上传主题文件夹的情况。请先将本地源码中的 themes 文件夹移动到别的目录下。然后 commit 一次。接着将 themes 文件夹移动回来,再 commit 一次。
要是还不行,那就删了 solitude 主题文件夹下的.git 文件夹,然后再重复上述的 commit 操作。
挖坑
大致写到这,未来或许会有下一章挖坑?但是目前通用的就到这,然后后续会写Qexo的简单使用方法、solitude的一些配置更改和我踩坑经历吧。
- 感谢您的赞赏