使用Hexo + GitHub Pages搭建博客
Alexander Hou

作为计算机大类的学生,我们都很渴望拥有一个属于自己的博客,记录自己在学习计算机科学过程的点点滴滴。我个人认为一种比较简单的方式就是使用Hexo + GitHub Pages 搭建。如果你使用的是 Arch Linux(和我一样),那事情就变得更简单也更高能了!作为 Arch 用户,你一定习惯了滚动更新和高效的包管理器。在 Arch 上配置 Node.js 环境并搭建 Hexo,比在 Windows 或 Mac 上还要丝滑。

我们直接用 pacman 配合终端,手把手带你滚出一个免费博客。

第一步:安装系统级依赖

首先,通过 Arch 的原生包管理器pacman把所需的运行环境(git,nodejs,npm)一并装好(Arch 默认提供最新的 Node.js 稳定版)。打开你的终端,执行以下命令:

1
sudo pacman -Syu git nodejs npm

验证安装是否成功:

1
2
3
node -v
npm -v
git --version

第二步:配置 npm 全局路径(避免 sudo)

在 Arch Linux 中,默认情况下 npm install -g 会尝试写入 /usr/lib/node_modules,这需要 root 权限,极不推荐。

为了优雅和安全,在你的家目录(~)下自定义一个 npm 全局安装路径:

1
2
3
4
5
6
7
8
9
10
11
12
# 1. 在家目录下创建全局安装目录
mkdir ~/.npm-global

# 2. 配置 npm 使用新路径
npm config set prefix '~/.npm-global'

# 3. 将路径加入你的环境变量
# 如果你用的是 bash,修改 ~/.bashrc;如果是 zsh,修改 ~/.zshrc
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc

# 4. 让环境变量立即生效(以 bash 为例,如果是 zsh 请改为 source ~/.zshrc)
source ~/.bashrc

第三步:安装 Hexo 并初始化博客

现在环境完美了,你可以不用 sudo,安全地安装 Hexo 命令行工具:

1
2
3
4
5
6
7
8
9
10
# 全局安装 hexo-cli
npm install hexo-cli -g

# 选一个你喜欢的地方创建博客目录(例如在用户根目录下,目录名可以自己定)
cd ~
hexo init my-blog
cd my-blog

# 安装项目依赖
npm install

接下来运行下面的命令来进行预览测试:

1
hexo server

终端输出成功后,直接用浏览器(Firefox/Chromium)访问 http://localhost:4000。能看到页面就说明本地搭建大功告成!在终端按 Ctrl + C 退出。

第四步:配置 GitHub SSH 密钥(免密部署)

为了让本地的 hexo deploy 能够无缝将代码推送到 GitHub,强烈建议使用 SSH 密钥,而不是每次都苦哈哈地输入密码。

1
2
3
4
5
6
7
8
9
# 1. 生成 SSH 密钥(一路Enter即可)
ssh-keygen -t ed25519 -C "你的GitHub注册邮箱@example.com"

# 2. 启动 ssh-agent 并添加密钥
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

# 3. 查看并复制你的公钥
cat ~/.ssh/id_ed25519.pub

复制输出的那一大串文本。 接着去 GitHub 网页端:

点击右上角头像 -> Settings -> 左侧 SSH and GPG keys -> 点击 New SSH key

Title 随便填(如:Arch-Laptop),Key 框里粘贴刚才复制的公钥,点击 Add。

测试是否连接成功:

1
2
ssh -T git@github.com
# 正常情况下一路yes和Enter即可,如果提示 Hi [你的用户名]! You've successfully authenticated... 就成功了!

第五步:关联 GitHub Pages

在 GitHub 上新建一个名为 你的用户名.github.ioPublic 仓库。然后回到 Arch 终端,在我们之前创建的 my-blog 目录下操作:

1
2
# 安装 hexo 的 git 部署插件
npm install hexo-deployer-git --save

使用编辑器(比如 vimnano)打开全局配置文件 _config.yml

1
vim _config.yml

滑到最底部,将 deploy 修改为 SSH 格式(注意冒号后的空格):

1
2
3
4
deploy:
type: git
repo: git@github.com:你的GitHub用户名/你的GitHub用户名.github.io.git
branch: main

第六步:一键编译与发布

大功告成,现在用一串标准的 Hexo 组合拳把博客推向公网:

1
hexo clean && hexo g && hexo d

部署完成后,直接在浏览器里访问 https://你的GitHub用户名.github.io,你的blog就已经挂在公网上啦!

如果未来对blog进行修改,保存文件,可以先终端执行命令来看一下效果再将blog推向公网:

1
hexo clean && hexo g && hexo s

日常写作:使用 Markdown

Arch 下有很多优秀的 Markdown 编辑器(如 Typora,或者在 VS Code / Neovim 里装插件)。

日常写文章只需:

1
2
# 新建文章
hexo new "Arch-Linux-Is-Awesome"

它会在 ~/my-blog/source/_posts/ 目录下生成一个 Arch-Linux-Is-Awesome.md 文件。直接用你最顺手的文本编辑器去编辑它,写完后再次运行 hexo clean && hexo g && hexo d 即可更新上线。