Re:从零开始的 Hexo 教程
本文最后更新于 2024年12月21日 晚上
趁着更新底层的机会,写写 Hexo 的基本使用吧。
1. 环境准备
Docker 和软件包
使用 Docker 下载 ubuntu 镜像
映射 /hexo 路径到物理路径,转发 4000 tcp 端口。
启动容器,打开终端:
1 |
|
NodeJS 和 npm
不要打开 NodeJS 官网!不用官网方式安装!
下滑找到有关 Linux 安装的这个说明内容,点进 NodeSource。
找到安装命令,说得很明白,看不懂的话网页翻译。
curl 刚才安装过了可以略过。
第三条命令可能需要选择“国家/地区”,根据提示选择即可。
验证
至此,NodeJS 和 npm 安装完成。
2. Hexo 安装
仍然是 Hexo 官网,找到安装命令。
安装 hexo-cli
这里有两种方式,先安装 cli 工具再安装 hexo 本体;直接安装 hexo 本体。有必要强调,最好使用第一种方式(第一条在官网首页展示,官方实际上也推荐这种方式)。
hexo 和 hexo-cli 是两个不同的东西,hexo 是实际上执行操作的工具,而 hexo-cli 是指挥他运行的命令行工具。
命令中的 “-g” 是全局的意思,这里全局安装 cli 工具,可以自动添加环境变量到系统,方便使用。
安装本体
可以执行 hexo init hexo,这样之前的路径映射就能生效了。
这步速度会稍慢,完成会提示这个
1 |
|
执行 init 后的文件列表
3. Fluid 主题
安装
这里选用的是 Fluid 主题,采用方式一通过 npm 安装主题。
找到 Fluid 官网,进入 Hexo Fluid 用户手册,再点进他的 Github 页面,Readme 里有说明,记得去改 _config.yml 。
安装前,在博客目录内可以查看 npm list
安装后,可以看到多了一条主题的
更新
Readme 中有一个指向 “Hexo Fluid 用户手册” 的链接。
4. 上传 / Deploy
hexo-deployer-git
1 |
|
下载好之后,要更改 _config.yml,但不用根据 Repo 的 Option 说明,参考 Hexo 官方关于 一键部署中 Git 的说明,设置如下条目:
1 |
|
使用如下命令生成 SSH 密钥
1 |
|
字段 | 含义 |
---|---|
ssh-keygen | 命令的主程序,用于生成、管理和转换 SSH 密钥。 |
-t rsa | -t:指定生成 RSA 类型的密钥。 |
-b 4096 | 指定生成 4096 位长度的密钥,安全性较高(默认 2048 位 )。 |
-C | 设置密钥注释,标识用途,随意填写,一般写邮箱。 |
期间会要求选择路径存放公钥私钥,直接回车使用默认路径即可,方便软件识别,这样我们只要把公钥添加到 Github 就可以立即使用。
路径选择之后,会要求一个密码,这个密码是让我们后续再次使用私钥生成公钥时输入的,看个人情况选择,可以直接回车保持无密码状态。
生成公钥后,使用如下命令把公钥拷贝一份到我们之前映射的路径,方便复制里面的内容上传 Github。
1 |
|
在 Github 中,按照如下路径添加 SSH key。(⚠️在账号中添加,而非项目中)
头像 - Settings - SSH and GPG keys - SSH keys - New SSH key
打开 .pub 文件,复制其中的内容,粘贴到这个框里,提交即可。
执行 hexo d,报错,要求提供邮箱和用户名
这个信息是 git 要求的,Github 中不允许重复用户名,所以通过用户名可以把这次提交关联到你的帐号,即使如此,依然需要邮箱,因为本地的 git 并不会校验用户名是否重复,邮箱可以帮助 Github 区分这次 Deploy 该归因给谁;另外,一个用户名也可能对应多个邮箱。
先不忙往上面打命令,我们先去 Github 找邮箱的隐私设置:
头像 - Settings - Email 最下面有两个选项,全钩上
选项 | 作用 |
---|---|
Keep my email addresses private | 隐藏私人邮箱地址(下面小字提示:只在 Web 提交中生效,且提供了一个 noreply 的替代地址) |
Block command line pushes that expose my email | 阻止在 cli 提交时使用私人邮箱 |
邮箱可以用第一个选项中小字提供的隐私邮箱,名字就写 Github 帐号名字即可。
现在执行 hexo d,就可以顺利 deploy 到 pages 了。
5. 优化插件
永久链接
hexo-abbrlink
1 |
|
插件是在 hexo g 命令后写入 Markdown 文件的。
而且要对应修改 _config.yml 的 permalink才能在网页链接上生效。
具体看 How to install
SEO 优化
hexo-generator-sitemap
1 |
|
RSS 支持
hexo-generator-feed
1 |
|
音频支持
hexo-tag-aplayer
1 |
|
⚠️此插件安装后,执行 npm list 命令会发现有’extraneous’(多余)的插件,不要删。
视频支持
hexo-tag-dplayer
1 |
|
⚠️此插件安装后,执行 npm list 命令会发现有’extraneous’(多余)的插件,不要删。