HEXO 博客框架搭建一
相比于 wordpress 等动态博客,HEXO 这种静态博客框架只以文件形式来存储博客内容。借助于 GitHub Pages ,Gitee Pages 等静态网页托管服务等可以省掉服务器的开销。以下操作都是基于 windows ,并默认已经完成了git 的配置。
本地安装
- 安装 Node.js ,安装完成后在 cmd 中输入
node -v
,显示版本号则说明安装正确。 - 安装完成 Node.js 后,同时会安装 npm ,类似于 pip 的包管理器。在 cmd 中输入
npm -v
,显示版本号则说明安装正确。 - 由于 npm 的包在国外,使用 npm 安装时会较慢。在此先使用 npm 安装 cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
。cmd 中输入cnpm -v
,显示版本号则说明安装正确。 - 使用 cnpm 安装 Hexo 框架
cnpm install -g hexo-cli
或者直接使用npm安装npm install -g hexo-cli
。cmd 中输入hexo -v
,显示版本号则说明安装正确。
本地使用
-
新建一个文件夹,此处为 blog 。所有操作在此文件夹下完成。
-
初始化博客:使用 cmd 切换到此目录下,或者在此文件夹下鼠标右键选择 Git Bash Here。输入
hexo init
即可。如果初始化过程较慢,是因为 Github 上仓库在国外下载较慢,可以先从 Gitee 上 clone ,然后再通过npm 安装。如果之前安装了 cnpm ,后两行可以用cnpm i
来代替。1
2
3
4
5
6git clone https://gitee.com/weilining/hexo-starter.git blog
cd blog
git submodule init
git submodule update
npm config set registry http://registry.npm.taobao.org
npm i -
新建文章:
hexo n "test"
(会在 sources/_posts 生产一个 test.md 文件),通过编辑器编辑该文件即可。 -
生产静态文件:
hexo clean
清理,hexo g
生成,hexo s
本地预览。在浏览器中打开 http://localhost:4000/就可以看到了。
服务器部署
部署到Github Pages
-
密钥链接 Github。
-
生成
YourGithubName.github.io
仓库。( YourGithubName 即 Github 名称) -
安装 Hexo 的 git 部署插件。
npm install --save hexo-deployer-git
。如果发现hexo d
部署失败可能是因为npm没有将包安装完。使用cnpm intall --save hexo-deployer-git
将所有包安装即可。可多执行几次。 -
修改 blog 目录下的 _config.yml 文件中的 deployment(推荐使用 vscode )。repo 项为仓库地址
1
2
3
4deploy:
- type: git
repo: https://github.com/XXXX/XXXX.github.io
branch: master
部署到Gitee Pages
-
1,2,3,4同 Github Pages。
-
同时部署到 Github Pages 和 Gitee Pages。
1
2
3
4
5
6
7deploy:
- type: git
repo: https://github.com/XXX/XXX.github.io
branch: master
- type: git
repo: git@gitee.com:XXX/XXX.git
branch: master
虽然在国内,Gitee Pages 的访问速度更快。但是每次部署我还要去更新,我实在是懒得搞。
部署到云服务器
之前阿里云送了半年的服务器,跑完 Matlab 的实验之后。避免闲置就把博客框架同时部署了上去,好处在于相比于 Github Pages 访问很快,有自己的域名。但是备案比较麻烦。过期之后就没有再续费了。所以目前手里没有服务器来让我验证部署的是否正确。就简单说一下思路。
- 配置好服务器的安全组,在服务器上安装 linux 系统,购买域名,备案。
- 通过 ssh 链接到服务器,配置密钥。
- 在服务器上安装 git,Node.js 。使用
git -v
,node -v
查看是否安装成功。 - 在服务器上搭建私人 git 仓库用来存储 Hexo 生产的静态文件。
- 在服务器上安装 Nginx 及其依赖性,启动 Nginx 服务。通过公网 ip 或者绑定的域名访问,显示 “Welcome to nginx” 则说明访问成功。修改 nginx_conf 文件,使其有权限访问博客的存放目录。
- 在本地 blog 文件夹下,修改 _config.yml 文件中的 deployment 项,使其关联到云服务器中的 git 仓库。
总结: hexo g
把 markdown 文件渲染的静态文件,发送到自己服务器的 git 仓库而不是 github 上的仓库,再通过 git 的钩子函数同步到博客的存放目录,最后被 Nginx 识别,展示。