因为博客长时间不更新的事,最近被 L 叔点名批评了。过年回家,我又把已经在寝室吃了整整一年灰的笔记本给挖出来了,打算过年期间把过去一个多月的欠账给补上。但之前的 Hexo + Github Pages 的博客生产环境是部署在实验室的台式机上的,现在在笔记本上该怎么重新配置生产环境呢?这篇文章就是记录一下这个问题的解决步骤。
1. 动手前的思考
还是按照我个人的老习惯,在动手前,先来理清思路,看看我们大概需要做哪些操作,为什么要做这些?这篇文章默认读者已经在另外一台电脑上部署好了,现在只是需要在另外一台电脑上部署。如果读者关注的只是如何使用 Hexo + Github Pages 搭建自己的博客,可以移步我之前的一篇文章 《知行合一 | 用 Hexo 搭建博客》。
既然博客的生产环境是 Hexo + Github Pages,那么重部署的工作就围绕着 Hexo 和 Github Pages 展开。回顾一下,两者在我们搭建博客的时候具体扮演着什么角色。
- Hexo:是一个静态博客生成器,根据给定的主题,负责把写好的 Markdown 文章转换成一堆 HTML + CSS + Javascript 页面。另外,Hexo 还有把生成好的站点上传到 Github Pages 的功能。
- Github Pages:这是我们的网站内容(那一堆 HTML + CSS + Javascript)真正存放的地方。
Hexo 是把 Markdown 转换成 HTML 的,那么首先,需要给 Hexo 提供 Markdown 文件。由于,我希望打开任何一台电脑都能更新最新的容,Hexo 博客的内容应该放到一个同步盘的文件夹下面,坚果云、Dropbox、OneDrive 这些都行。其次,Hexo 是基于 Node.js 的,但笔记本上完全没有 Node.js 环境,所以需要安装 Node.js。还有,很多文章都会用到类似 hexo-katex 这样的插件,新电脑上也没安装,需要安装这些必须的插件。
对于 Github Pages,最大的问题在于告诉 Github 服务器,这次的提交更改不是别人,也是由我做出的,所以一定要接受我的改动。在《知行合一 | 用 Hexo 搭建博客》中我已经讲过了,这个身份认证是由 SSH Key 来完成的,在重新部署中,我们还是要弄这个。
2. 重部署流程
2.1 文件同步
要把整一个 your_name.github.io
文件夹同步过来,里面包含的 .gitignore
等文件包含了等下要提交的文件对应哪个 repo 等的信息,还有
2.2 Hexo 配置
因为笔记本上完全没有 Hexo 环境,所以我们还要重新部署下,根据《知行合一 | 用 Hexo 搭建博客》步骤大体如下。
先安装 Node.js 和 Git,再安装完这两者后,再打开 Node.js command prompt 安装 Hexo。但由于 Node.js 官方的源安装速度非常慢,我们先将源改成国内淘宝的镜像,执行:
1 | npm config set registry "https://registry.npm.taobao.org" |
cd
到同步的 your_name.github.io
内, 然后再安装 Hexo:
1 | npm install -g hexo-cli |
安装完后,可以对比下新电脑里your_name.github.io
文件夹下面的 package.json
里面的插件和老电脑里的package.json
插件列表有什么不同,把缺的插件统统装一遍就可以了。这个就需要在同步前,也就是在敲npm install -g hexo-cli
前就把老电脑里的插件信息另存为。可惜我当时没想到这一点,不过我就额外安装过 Noise 主题和 hexo-katex 插件,所以根据我另外一篇文章 《Hexo 博客支持 KaTeX(回炉版)》,还需要执行如下命令:
1 | npm install hexo-renderer-pandoc --save |
由于 hexo-renderer-pandoc 插件会调用 pandoc,所以还需要先去下载安装 Padoc。为了 Noise 主题,执行
1 | npm install hexo-renderer-jade --save |
为了部署,还要执行
1 | npm install hexo-deployer-git --save |
至此,在新的平台上运行 hexo clean
,hexo generate
,hexo server
等命令应该就没有问题了。
2.3 Github 配置
这一环节,其实同《知行合一 | 用 Hexo 搭建博客》一样,唯一的差别就是省去了创建 repo 这一环节,因为我们的 repo 是同步过来的。具体步骤如下,更详细的解释可以看《知行合一 | 用 Hexo 搭建博客》一文:
Step 1:Setting up Git。在 Git Bash 中执行如下代码即可:
1
2git config --global user.name "YOUR NAME"
git config --global user.email "YOUR EMAIL ADDRESS"其中,
YOUR NAME
是自己取的名字,YOUR EMAIL ADDRESS
是自己的 Github 邮箱。Step 2:Authenticating with GitHub from Git。
在 Git Bash 下执行如下命令,生成 SSH key
1
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
其中,
your_email@example.com
是你的 Github 注册邮箱,剩下的一路回车即可。将 SSH key 添加到 ssh-agent
在 Git Bash 下执行如下命令,开启 ssh-agent
1
eval "$(ssh-agent -s)"
将这个 SSH key 添加到 ssh-agent 里去
1
ssh-add ~/.ssh/id_rsa
将 SSH key 添加到 Github 账户
在 Git Bash 中将 SSH Key 拷贝出来:
1
clip < ~/.ssh/id_rsa.pub
此时,SSH Key 已经在我们的剪切板里了。然后登录 Github 帐号,依次点击自己的头像,Settings,SSH and GPG keys, Add SSH key, 在 Title 这里输入 Key 的label,比如
your_name - PC
,然后在 Key 里面把 SSH Key 粘贴进去,点击 Add SSH key 大功告成。
测试 SSH 连接,在 Git Bash 中敲入
1
ssh -T git@github.com
应该可以看到提示你成功的信息。
Hexo 部署:*执行
hexo deploy
应该就可以大功告成了。
3. 动手后的再思考
这篇文章写到这里,发现写的内容基本都是上一篇《知行合一 | 用 Hexo 搭建博客》内容的重复,也就是说多台电脑同时更新的问题,并不是一个完全不同的问题,绝大部分其实都是可以复用的。最初,让我困惑的并不是这些操作步骤,而是如何正确的刨分这个问题,哪些是我熟悉的,哪些是我陌生的。其实,这篇文章主要想讲两点:
- 仅仅将那些插件文件同步,并不等于安装了那些插件,所以我们才需要在新电脑上安装
hexo-katex
等插件; - 只要将新电脑的 SSH key 添加到 Github 的项目里面,就通过了身份认证。
如果您觉得我的文章对您有所帮助,不妨小额捐助一下,您的鼓励是我长期坚持的动力。