从零开始搭建Hexo博客
1. Hexo简介
引用官网的介绍:A fast, simple & powerful blog framework
Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub上,是搭建博客的首选框架。
2. 环境搭建
基于Ubuntu20.04安装Hexo配置Next主题
2.1 安装Git
1 | sudo apt-get install git |
安装完成后进行配置
1 | git config --global user.email "you@example.com" |
2.2 安装Node.js
使用NVM(Node Version Manager)方式进行安装
1 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash |
安装完成后关闭终端重新打开
2.3 安装最新版本node
安装过程中可能会因为网络问题失败,可以尝试挂梯子,安装完成后更新自带npm
1 | nvm install node |
2.4 安装Hexo
安装过程中可能会因为网络问题失败,可以多重试几次或挂梯子
1 | npm install -g hexo-cli |
2.5 安装Next主题
Next主题是Hexo比较知名的第三方主题,极简风格,有相当多的使用者,维护也做得比较好
不过Next新旧版本的仓库地址不一样,目前最新的GitHub地址hexo-theme-next
Next主题安装比较简单,直接从仓库clone然后修改Hexo配置文件
1 | cd blog |
修改Hexo配置文件_config.yml
,将站点主题改为Next,修改如下
1 | # Extensions |
全部安装完成后的版本信息如下
1 | jack@linux:~/blog/source/_posts$ hexo -v |
2.6 初步运行Hexo进行验证
1 | hexo init blog |
运行之后可以通过 http://localhost:4000 进行访问
1 | INFO Validating config |
2.7 部署GitHub远程服务器
2.7.1 创建GitHub项目
在GitHub上注册账号,注册后上传ssh公钥,便于后续的部署操作
创建一个与你用户名对应的项目username.github.io
,例如我创建的项目地址为https://github.com/JackHuang021/JackHuang021.github.io.git
2.7.2 进行部署
部署需要用到hexo deploy
上传到GitHub仓库,这里需要下载部署插件,并修改hexo配置文件_config.yml
,
我们很多的博客设置都可以在这个配置文件里面进行修改
首先安装Git部署插件
1 | cd ~/blog |
修改博客配置文件_config.yml
,增加如下内容
1 |
|
最后使用hexo d
进行上传部署,现在访问username.github.io
便可以看到博客页面了
后续更新博客设置或者文章的话需要再次进行上传部署hexo g -d
2.8 Hexo博客备份
Hexo在进行部署时,是将页面内容解析后放在.depoly_git
中进行上传GitHub仓库,博客内文章源文件并未进行上传,所以还需要手动将这些文件进行手动上传。目前比较常用的方法是在原GitHub仓库建立一条分支,将这些文件上传到该分支。
1 | cd blog |
3. 恢复Hexo博客
- 按照之前的步骤搭建Hexo环境
- clone之前备份的hexo分支内容
git clone --recursive -b hexo git@github.com:JackHuang021/JackHuang021.github.io.git blog
- 下载npm依赖模块
1
2cd blog
npm install - clone master分支内容
1
2cd blog
git clone git@github.com:JackHuang021/JackHuang021.github.io.git .deploy_git - 正常更新、部署博客
1
2
3hexo g
hexo s
hexo d
4. hexo更新
- 升级hexo-cli
npm install -g hexo-cli
- hexo插件升级
1
2
3
4npm install -g npm-check
npm-check
# 使用npm-check -u进行交互式的升级,选中所有hexo相关的插件
npm-check -u - 更新next主题
1
2cd themes/next
git pull - 推送
1
2
3hexo clean
hexo g
hexo d - 将hexo推送到远程仓库