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 用户名和邮箱
|
|
安装 包管理器
安装 npm 为一切的基石,一般来说,你安装了 node,也相当于你安装了 npm,通过一下命令来验证:
|
|
修改 npm 源。npm 下载各种模块,默认是从国外服务器下载,速度较慢,建议配置成淘宝镜像。打开 CMD 窗口,运行如下命令:
|
|
安装 pnpm
pnpm 是一个快速、节省磁盘空间的包管理器,类似于 npm 和 yarn。安装 pnpm 可以通过以下命令:
|
|
为什么选择 pnpm?因为它的安装速度快,依赖管理更高效,且相对于 npm,我使用 npm 容易失败且慢,pnpm 给我的体验更好。
安装 Hexo
- 在 Git BASH 输入如下命令安装 Hexo:
|
|
- 安装完后输入
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 项。
点击 链接 前往生成
[!NOTE]
!!! 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:
|
|
我一般都不填,直接在文件下下就可以开始,如果你添加了项目名称,那么下一步就是:
|
|
- 安装依赖包:
|
|
然后就是选择你想要的主题,这里我使用的是Solitude,具体的配置不细讲,我只讲一部分:
首先就是基本的安装,这里还是选择git clone没有别的原因,主要还是会改点源码,不想改的直接pnpm下载即可:
|
|
然后在_config.yml里修改成:
|
|
配置
下列代码是我的备忘:
|
|
博客的其他修改基本就是来自教程和一些博主的网站。
插件
- 基础依赖
hexo-renderer-pug
|
|
- 字数统计
hexo-wordcount
|
|
配置里修改:
|
|
- 数学公式 卸载
hexo-render-marked
|
|
安装 hexo-renderer-markdown-it katex @renbaoshuo/markdown-it-katex
|
|
配置里修改
|
|
添加以下内容到 _config.yml
|
|
开启配置项
|
|
- PWA 安装 hexo-swpp 和 swpp-backends 插件
在博客根目录执行
|
|
开启配置
|
|
在_config.yml里添加swpp配置
|
|
在 source 目录中创建 manifest.json 文件
|
|
在博客根目录创建一个 sw-rules.js 文件
|
|
- hexo-deploy-git 提交到git的插件
|
|
- hexo-generator-feed hexo的rss插件
|
|
- hexo 的短链接:
hexo-abbrlink
|
|
在_config.yml里修改:
|
|
添加:
|
|
- 博客的sitemap :
hexo-generator-sitemap
|
|
在_config.yml里添加配置:
|
|
- 使用algolia搜索 :
hexo-algoliasearch
- 注册algolia:
注册地址:dashboard.algolia.com/users/sign_up
- 创建应用:
注册成功后创建应用:dashboard.algolia.com/account/plan/create?from=dashboard
- search -> configure -> index添加index_name即可
在博客执行命令:
|
|
_config.yml里添加
|
|
[!NOTE]
!!!配置完成后记得运行
hexo clean
在hexo g 后实行下列代码:
|
|
- **hexo-safego**安全跳转插件
使用该插件之前,需要先安装 cheerio,cheerio 是一个轻量级的库,用于在服务器端快速、灵活地实现 jQuery 核心功能。在 hexo-safego 插件中,cheerio 被用来解析和操作生成的静态 HTML 内容,类似于在浏览器中使用 jQuery 处理 DOM 元素。这使得插件能够在生成静态页面时,处理和替换外部链接,增强博客的安全性,而不需要在客户端引入 jQuery。Hexo 一般都有这个插件,可以在 node_modules 查看,如果没有,请先执行:
|
|
然后即可安装该插件:
|
|
在hexo根目录的_config.yml文件中添加以下配置:
|
|
- hexo的追番页面:hexo-bilibili-bangumi
|
|
在_config.yml配置:
|
|
还在更新中。。。
Github action配置
承接段落的继续吧,未来会在出水一期。
接下来就是创建一个私有仓库,根据大佬的文章,是为了保护Token,见仁见智。
这个私有仓库的建立是存储Hexo博客代码,如果你要使用Qexo
,这也是必不可少的!
创建完成后,需要把博客的源码 push 到这里。首先获取远程仓库地址,此处虽然 SSH 和 HTTPS 均可。SSH 在绑定过 ssh key 的设备上无需再输入密码,HTTPS 则需要输入密码,但是 SSH 偶尔会遇到端口占用的情况。请自主选择。
[!TIP]
这里之所以是私有仓库,是因为在接下来的配置中会用到
Token,如果Token被盗用,别人可以肆意操作你的 github 仓库内容,为了避免这一风险,才选择的博客源码闭源。
配置 Github Action
- 在
[Blogroot]新建.github文件夹,注意开头是有个.的。然后在.github内新建workflows文件夹,再在workflows文件夹内新建autodeploy.yml,在[Blogroot]/.github/workflows/autodeploy.yml里面输入
|
|
-
首先把Token直接放在仓库的文件里还是不太好。
-
像我这种在本地搞的,推不到仓库里,因为这里的token不能直接上传,我尝试过把
token:改成token: ${{ servets.GH_token }},但是依旧有各种问题,相反使用了店长的代码后,就大差不差,询问AI后就得到目前的代码,也就可以正式上传了。(无拉踩的意思) -
之后需要自己到仓库的 Settings->Secrets->actions 下添加环境变量,变量名参考脚本中出现的,依次添加。
重新设置远程仓库和分支
🍼第一次使用git管理博客源码
1. 删除或者先把`[Blogroot]/themes/solitude/.git`移动到非博客文件夹目录下,原因是主题文件夹下的`.git`文件夹的存在会导致其被识别成子项目,从而无法被上传到源码仓库。- 在博客根目录
[Blogroot]路径下运行指令:
|
|
- 添加屏蔽项
|
|
如果不是solitude主题,记得替换最后一行内容为你自己当前使用的主题。
4. 之后再运行 git 提交指令,将博客源码提交到 github 上。
|
|
- 此时你的主题文件夹若已经被正常上传,并且你也添加了主题文件夹下的.git 文件夹的屏蔽项。那你可以考虑把第二步移走或删除的
.git放回来,用作以后升级。(不禁怀疑真的有人会去用这个方式来升级吗)
🍾曾经做过git管理源码的操作
1. 添加屏蔽项因为能够使用指令进行安装的内容不包括在需要提交的源码内,所有我们需要将这些内容添加到屏蔽项,表示不上传到 github 上。这样可以显著减少需要提交的文件量和加快提交速度。
打开[Blogroot]/.gitignore,输入以下内容:
|
|
如果不是solitude主题,记得替换最后一行内容为你自己当前使用的主题。
- 提交源码到私有仓库
[SourceRepo]在博客根目录[Blogroot]下启动终端,使用 git 指令重设仓库地址。这样在新建仓库,我们仍旧可以保留珍贵的 commit history,便于版本回滚。
|
|
- 可能遇到的 bug 因为 solitude 主题文件夹下的.git 文件夹的存在,那么主题文件夹会被识别子项目。从而无法被上传到源码仓库。若是遇到添加屏蔽项,但是还是无法正常上传主题文件夹的情况。请先将本地源码中的 themes 文件夹移动到别的目录下。然后 commit 一次。接着将 themes 文件夹移动回来,再 commit 一次。
[!IMPORTANT]
要是还不行,那就删了 solitude 主题文件夹下的.git 文件夹,然后再重复上述的 commit 操作。
挖坑
大致写到这,未来或许会有下一章挖坑?但是目前通用的就到这,然后后续会写Qexo的简单使用方法、solitude的一些配置更改和我踩坑经历吧。