HEXO 博客框架搭建一

相比于 wordpress 等动态博客,HEXO 这种静态博客框架只以文件形式来存储博客内容。借助于 GitHub Pages ,Gitee Pages 等静态网页托管服务等可以省掉服务器的开销。以下操作都是基于 windows ,并默认已经完成了git 的配置。

本地安装

  1. 安装 Node.js ,安装完成后在 cmd 中输入 node -v ,显示版本号则说明安装正确。
  2. 安装完成 Node.js 后,同时会安装 npm ,类似于 pip 的包管理器。在 cmd 中输入 npm -v ,显示版本号则说明安装正确。
  3. 由于 npm 的包在国外,使用 npm 安装时会较慢。在此先使用 npm 安装 cnpm:npm install -g cnpm --registry=https://registry.npm.taobao.org。cmd 中输入 cnpm -v ,显示版本号则说明安装正确。
  4. 使用 cnpm 安装 Hexo 框架 cnpm install -g hexo-cli 或者直接使用npm安装 npm install -g hexo-cli。cmd 中输入 hexo -v,显示版本号则说明安装正确。

本地使用

  1. 新建一个文件夹,此处为 blog 。所有操作在此文件夹下完成。

  2. 初始化博客:使用 cmd 切换到此目录下,或者在此文件夹下鼠标右键选择 Git Bash Here。输入 hexo init 即可。如果初始化过程较慢,是因为 Github 上仓库在国外下载较慢,可以先从 Gitee 上 clone ,然后再通过npm 安装。如果之前安装了 cnpm ,后两行可以用 cnpm i 来代替。

    1
    2
    3
    4
    5
    6
    git 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
  3. 新建文章:hexo n "test" (会在 sources/_posts 生产一个 test.md 文件),通过编辑器编辑该文件即可。

  4. 生产静态文件:hexo clean 清理,hexo g 生成,hexo s 本地预览。在浏览器中打开 http://localhost:4000/就可以看到了。

服务器部署

部署到Github Pages

  1. 密钥链接 Github。

  2. 生成 YourGithubName.github.io 仓库。( YourGithubName 即 Github 名称)

  3. 安装 Hexo 的 git 部署插件。npm install --save hexo-deployer-git。如果发现hexo d部署失败可能是因为npm没有将包安装完。使用cnpm intall --save hexo-deployer-git将所有包安装即可。可多执行几次。

  4. 修改 blog 目录下的 _config.yml 文件中的 deployment(推荐使用 vscode )。repo 项为仓库地址

    1
    2
    3
    4
    deploy:
    - type: git
    repo: https://github.com/XXXX/XXXX.github.io
    branch: master

部署到Gitee Pages

  1. 1,2,3,4同 Github Pages。

  2. 同时部署到 Github Pages 和 Gitee Pages。

    1
    2
    3
    4
    5
    6
    7
    deploy:
    - 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 访问很快,有自己的域名。但是备案比较麻烦。过期之后就没有再续费了。所以目前手里没有服务器来让我验证部署的是否正确。就简单说一下思路。

  1. 配置好服务器的安全组,在服务器上安装 linux 系统,购买域名,备案。
  2. 通过 ssh 链接到服务器,配置密钥。
  3. 在服务器上安装 git,Node.js 。使用 git -vnode -v 查看是否安装成功。
  4. 在服务器上搭建私人 git 仓库用来存储 Hexo 生产的静态文件。
  5. 在服务器上安装 Nginx 及其依赖性,启动 Nginx 服务。通过公网 ip 或者绑定的域名访问,显示 “Welcome to nginx” 则说明访问成功。修改 nginx_conf 文件,使其有权限访问博客的存放目录。
  6. 在本地 blog 文件夹下,修改 _config.yml 文件中的 deployment 项,使其关联到云服务器中的 git 仓库。

总结: hexo g 把 markdown 文件渲染的静态文件,发送到自己服务器的 git 仓库而不是 github 上的仓库,再通过 git 的钩子函数同步到博客的存放目录,最后被 Nginx 识别,展示。