介绍

本篇文章将介绍在Linux上搭建Hexo个人博客网站,并使用Github pages部署,使用的是Ubuntu,其他系统也大同小异。

Hexo部分

通过Snap安装nodejs (你也可以通过其他方式 ubuntu预装了Snap)

注意最新版Hexo需要nodejs版本至少是14

1
2
$ sudo snap install node
$ node --version #显示v20.12.2

安装Hexo

1
$ npm install -g hexo-cli

初始化新建Hexo文件夹

1
2
3
$ hexo init HexoInit
$ cd HexoInit
$ npm install

可以在 _config.yml 修改网站配置

测试并访问

1
$ hexo server

访问 http://localhost:4000/ 如果没问题即可CTRL+C退出

1
$ cd ..

Github pages部分

去Github上新建一个仓库,名称随意,例如 MyHexoBlog

在Github仓库中Settings-Pages-Build and deployment中将Source改成GitHub Actions

安装git

1
$ sudo apt install git

安装Github Cli

1
$ sudo apt install gh

根据提示登陆

1
$ gh auth login

配置git用户信息

1
2
$ git config --global user.name "你的名字"
$ git config --global user.email "你的邮箱@gmail.com"

克隆你刚刚创建的仓库到本地

1
$ git clone 你Github的仓库地址

把刚刚Hexo建的文件夹里的内容复制到你的本地仓库文件夹

1
2
3
$ mv -v HexoInit/* MyHexoBlog/
$ mv -v HexoInit/.[!.]* MyHexoBlog/
$ cd MyHexoBlog

创建GitHub Actions配置文件

1
2
3
$ cd .github
$ mkdir -p workflows && touch workflows/pages.yml
$ xed workflows/pages.yml

修改pages.yml内容为以下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
name: Pages

on:
push:
branches:
- main # default branch

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
# If your repository depends on submodule, please see: https://github.com/actions/checkout
submodules: recursive
- name: Use Node.js 20
uses: actions/setup-node@v4
with:
# Examples: 20, 18.19, >=16.20.2, lts/Iron, lts/Hydrogen, *, latest, current, node
# Ref: https://github.com/actions/setup-node#supported-version-syntax
node-version: '20.12.2'
# 在这里把node版本改成你的
- name: Cache NPM dependencies
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.OS }}-npm-cache
restore-keys: |
${{ runner.OS }}-npm-cache
- name: Install Dependencies
run: npm install
- name: Build
run: npm run build
- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./public
deploy:
needs: build
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

提交到Github仓库

1
2
3
$ cd ..
$ git commit #根据提示操作
$ git push -u origin main

如果成功即可访问你的网站 通常是 用户名.github.io

相关链接

Hexo中文文档

Github