基于hexo构建博客

what is hexo

hexo 是一个基于GitHub pages托管能力(当然也可以自己直接发布)构建自己博客的一个nodejs 框架,用来搭建自己博客是很方便的。

构建GitHub pages博客

在使用hexo博客前最好先使用GitHub pages搭建好自己的博客服务,具体教程参考搭建GitHub_pages博客并配置自定义域名cdn加速

安装hexo

在安装使用hexo之前,需要先安装nodejs,具体教程参考nodejs安装配置

node安装完成以后,就可以安装hexo了,打开控制台:

1
2
3
4
5
# 全局安装hexo命令
npm install -g hexo-cli

# 验证是否安装成功
hexo --help

初始化博客

创建一个目录,进入到这个博客内部执行初始化命令

1
hexo init

在执行命令的时候,遇到一个报错,这个报错是由于小飞机代理引起的,修改gitcofig即可。
报错如下:
1
2
3
4
5
6
7
8
9
10
11
 INFO  Cloning hexo-starter https://github.com/hexojs/hexo-starter.git
fatal: 无法访问 'https://github.com/hexojs/hexo-starter.git/':LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
WARN git clone failed. Copying data instead
FATAL {
err: [Error: ENOENT: no such file or directory, scandir '/usr/local/lib/node_modules/hexo-cli/assets'] {
errno: -2,
code: 'ENOENT',
syscall: 'scandir',
path: '/usr/local/lib/node_modules/hexo-cli/assets'
}
} Something's wrong. Maybe you can find the solution here: %s http://hexo.io/docs/troubleshooting.html

解决方式是编辑git的配置文件:
1
vim ~/.gitconfig

写入一下内容,端口是你自己小飞机的端口:
1
2
3
4
5
6
7
8
 [user]
name = wkCaeser
email = wkCaeser@gmail.com

[http]
proxy = socks5://127.0.0.1:10808
[https]
proxy = socks5://127.0.0.1:10808

改好以后再重新执行hexo init命令即可,执行完成后目录就多了如下内容:

然后执行如下操作来查看自己初始化的博客:

1
2
3
4
5
# 编译生成博客
hexo g

# 本地启动博客服务
hexo s

然后浏览器中输入 http://localhost:4000 就可以看到自己初始化的博客页面了。

发布到GitHub pages

找到刚刚生成的博客目录下的_config.yml,写入GitHub pages仓库的地址信息:

1
2
3
4
5
6
7
8
9
# gihub pages cname的域名 
# 如果设置了自定义域名或者cdn域名,一定要写页面访问是输入的地址
# 没有的话就写GitHub原本提供的域名
url: https://www.wkcaeser.com

deploy:
type: git
repository: https://github.com/wkcaeser/blog.git
branch: main

然后找到source目录,创建CNAME文件,文件内容为在GitHub上配置自定义域名,例如我的是:

1
blog.wkcaeser.com

然后执行发布命令:

1
2
# 发布到GitHub 需要先配置GitHub的ssh-key
hexo d

然后发现报了下面这个错:

1
2
3
guimokai@wk-mbp:~/Desktop/vs_code_workspace/blog$ hexo d
INFO Validating config
ERROR Deployer not found: git

这是因为缺少hexo-deployer-git插件,安装后重新执行发布命令即可:

1
npm install hexo-deployer-git --save

然后就可以通过自己GitHub pages的链接访问博客了,例如我的是 www.wkcaeser.com

写文章

使用命令如下命令就可以生成新文章了,

1
hexo new post "article title"

也可以直接在source/_post目录下直接新建md文档。

编写完以后,就可以重新生成,然后发布了

1
2
3
hexo clean
hexo g
hexo d